diff --git a/_stud_tests.sh b/_stud_tests.sh index 5e48451..6d53ce5 100755 --- a/_stud_tests.sh +++ b/_stud_tests.sh @@ -72,6 +72,7 @@ LOG_PATH="./moj-out/" COUNT=0 ALL=0 mkdir -p moj-out +rm moj-out/* #10 test for invalid arguments; Expected return code for all: 1 @@ -283,6 +284,72 @@ echo -n $? > ${LOG_PATH}test034.!!! $INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test035.in --output=${LOCAL_OUT_PATH2}test035.out 2> ${LOG_PATH}test035.err echo -n $? > ${LOG_PATH}test035.!!! +# test36: empty input: test036.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=ref-out/test005.out --output=${LOCAL_OUT_PATH2}test036.out 2> ${LOG_PATH}test036.err +echo -n $? > ${LOG_PATH}test036.!!! + +# test37: details of empty class: test037.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test037.in --output=${LOCAL_OUT_PATH2}test037.out --details=A 2> ${LOG_PATH}test037.err +echo -n $? > ${LOG_PATH}test037.!!! + +# test38: details of unknown class: test038.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test037.in --output=${LOCAL_OUT_PATH2}test038.out --details=B 2> ${LOG_PATH}test038.err +echo -n $? > ${LOG_PATH}test038.!!! + +# test39: details of base class: test039.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test039.in --output=${LOCAL_OUT_PATH2}test039.out --details=A 2> ${LOG_PATH}test039.err +echo -n $? > ${LOG_PATH}test039.!!! + +# test40: inheritance of private atributes: test40.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test40.in --output=${LOCAL_OUT_PATH2}test40.out --details 2> ${LOG_PATH}test40.err +echo -n $? > ${LOG_PATH}test40.!!! + +#TEST 41 s --details=B sa nepusta! neviem co ma byt vysledok + +# test42: private pure virtual method: test42.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test42.in --output=${LOCAL_OUT_PATH2}test42.out 2> ${LOG_PATH}test42.err +echo -n $? > ${LOG_PATH}test42.!!! + +# test43: triangle conflict: test43.out; Expected return code: 21 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test43.in --output=${LOCAL_OUT_PATH2}test43.out 2> ${LOG_PATH}test43.err +echo -n $? > ${LOG_PATH}test43.!!! + +# test44: triangle conflict solved by overriding: test44.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test44.in --output=${LOCAL_OUT_PATH2}test44.out 2> ${LOG_PATH}test44.err +echo -n $? > ${LOG_PATH}test44.!!! + +# test45: triangle conflict solved by using:: : test45.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test45.in --output=${LOCAL_OUT_PATH2}test45.out --details=C 2> ${LOG_PATH}test45.err +echo -n $? > ${LOG_PATH}test45.!!! + +# test46: triangle conflict solved by overiding method: test46.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test46.in --output=${LOCAL_OUT_PATH2}test46.out --details=C 2> ${LOG_PATH}test46.err +echo -n $? > ${LOG_PATH}test46.!!! + +# test47: base class cannot be the same class: test47.out; Expected return code: 4 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test47.in --output=${LOCAL_OUT_PATH2}test47.out 2> ${LOG_PATH}test47.err +echo -n $? > ${LOG_PATH}test47.!!! + +# test48: duplicit base class: test48.out; Expected return code: 4 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test48.in --output=${LOCAL_OUT_PATH2}test48.out 2> ${LOG_PATH}test48.err +echo -n $? > ${LOG_PATH}test48.!!! + +# test49: unknown base class: test49.out; Expected return code: 4 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test49.in --output=${LOCAL_OUT_PATH2}test49.out 2> ${LOG_PATH}test49.err +echo -n $? > ${LOG_PATH}test49.!!! + +# test50: static members: test50.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test50.in --output=${LOCAL_OUT_PATH2}test50.out --details=B 2> ${LOG_PATH}test50.err +echo -n $? > ${LOG_PATH}test50.!!! + +# test51: types: test51.out; Expected return code: 0 +$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test51.in --output=${LOCAL_OUT_PATH2}test51.out --details=A 2> ${LOG_PATH}test51.err +echo -n $? > ${LOG_PATH}test51.!!! + + + + + #Print results RED='\033[0;31m' END='\033[0m' @@ -360,7 +427,6 @@ for i in `ls ./ref-out/ | grep -e '.*\.out$'` - rm moj-out/* PASSED=$((ALL-COUNT)) printf "${GREEN}===================================================${END}\n" printf "Failed ${BRED}$COUNT${END} "`[[ $COUNT -eq 1 ]] && echo -n "test" || echo -n "tests"`; diff --git a/ref-out/test036.!!! b/ref-out/test036.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test036.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test036.out b/ref-out/test036.out new file mode 100644 index 0000000..a9e4e3d --- /dev/null +++ b/ref-out/test036.out @@ -0,0 +1,2 @@ + + diff --git a/ref-out/test037.!!! b/ref-out/test037.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test037.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test037.out b/ref-out/test037.out new file mode 100644 index 0000000..fcfc713 --- /dev/null +++ b/ref-out/test037.out @@ -0,0 +1,2 @@ + + diff --git a/ref-out/test038.!!! b/ref-out/test038.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test038.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test038.out b/ref-out/test038.out new file mode 100644 index 0000000..1e33fe8 --- /dev/null +++ b/ref-out/test038.out @@ -0,0 +1 @@ + diff --git a/ref-out/test039.!!! b/ref-out/test039.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test039.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test039.out b/ref-out/test039.out new file mode 100644 index 0000000..76f8632 --- /dev/null +++ b/ref-out/test039.out @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/ref-out/test40.!!! b/ref-out/test40.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test40.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test40.out b/ref-out/test40.out new file mode 100644 index 0000000..76b55af --- /dev/null +++ b/ref-out/test40.out @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ref-out/test42.!!! b/ref-out/test42.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test42.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test42.out b/ref-out/test42.out new file mode 100644 index 0000000..409d215 --- /dev/null +++ b/ref-out/test42.out @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ref-out/test43.!!! b/ref-out/test43.!!! new file mode 100644 index 0000000..b5045cc --- /dev/null +++ b/ref-out/test43.!!! @@ -0,0 +1 @@ +21 \ No newline at end of file diff --git a/ref-out/test43.out b/ref-out/test43.out new file mode 100644 index 0000000..e69de29 diff --git a/ref-out/test44.!!! b/ref-out/test44.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test44.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test44.out b/ref-out/test44.out new file mode 100644 index 0000000..5c8b1f2 --- /dev/null +++ b/ref-out/test44.out @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/ref-out/test45.!!! b/ref-out/test45.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test45.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test45.out b/ref-out/test45.out new file mode 100644 index 0000000..c274c90 --- /dev/null +++ b/ref-out/test45.out @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/ref-out/test46.!!! b/ref-out/test46.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test46.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test46.out b/ref-out/test46.out new file mode 100644 index 0000000..944ef71 --- /dev/null +++ b/ref-out/test46.out @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/ref-out/test47.!!! b/ref-out/test47.!!! new file mode 100644 index 0000000..bf0d87a --- /dev/null +++ b/ref-out/test47.!!! @@ -0,0 +1 @@ +4 \ No newline at end of file diff --git a/ref-out/test47.out b/ref-out/test47.out new file mode 100644 index 0000000..e69de29 diff --git a/ref-out/test48.!!! b/ref-out/test48.!!! new file mode 100644 index 0000000..bf0d87a --- /dev/null +++ b/ref-out/test48.!!! @@ -0,0 +1 @@ +4 \ No newline at end of file diff --git a/ref-out/test48.out b/ref-out/test48.out new file mode 100644 index 0000000..e69de29 diff --git a/ref-out/test49.!!! b/ref-out/test49.!!! new file mode 100644 index 0000000..bf0d87a --- /dev/null +++ b/ref-out/test49.!!! @@ -0,0 +1 @@ +4 \ No newline at end of file diff --git a/ref-out/test49.out b/ref-out/test49.out new file mode 100644 index 0000000..e69de29 diff --git a/ref-out/test50.!!! b/ref-out/test50.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test50.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test50.out b/ref-out/test50.out new file mode 100644 index 0000000..cdd32c0 --- /dev/null +++ b/ref-out/test50.out @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ref-out/test51.!!! b/ref-out/test51.!!! new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/ref-out/test51.!!! @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/ref-out/test51.out b/ref-out/test51.out new file mode 100644 index 0000000..9165710 --- /dev/null +++ b/ref-out/test51.out @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/test037.in b/test037.in new file mode 100644 index 0000000..f0df46d --- /dev/null +++ b/test037.in @@ -0,0 +1 @@ +class A{}; diff --git a/test039.in b/test039.in new file mode 100644 index 0000000..3208832 --- /dev/null +++ b/test039.in @@ -0,0 +1,4 @@ +class A{ + int f(); + int x; +}; diff --git a/test40.in b/test40.in new file mode 100644 index 0000000..17d8196 --- /dev/null +++ b/test40.in @@ -0,0 +1,15 @@ +class A{ + private: + int x; +}; + +class B: A{ + public: + int x1; +}; + +class C: private B{ +}; + +class D: C{ +}; diff --git a/test41.in b/test41.in new file mode 100644 index 0000000..e804c78 --- /dev/null +++ b/test41.in @@ -0,0 +1,12 @@ +class A{ + private: + int f(int x1, int x2); + int f(double x1); +}; + +class B: public A{ + protected: + using A::f; + +}; + diff --git a/test42.in b/test42.in new file mode 100644 index 0000000..e7548c7 --- /dev/null +++ b/test42.in @@ -0,0 +1,11 @@ +class A{ + private: + int f()=0; +}; + +class B: private A{ +}; + +class C: private B{ +}; + diff --git a/test43.in b/test43.in new file mode 100644 index 0000000..fc871cd --- /dev/null +++ b/test43.in @@ -0,0 +1,10 @@ +class A{ + public: + int x; +}; + +class B: public A{ +}; + +class C: public A, public B{ +}; diff --git a/test44.in b/test44.in new file mode 100644 index 0000000..bde8c04 --- /dev/null +++ b/test44.in @@ -0,0 +1,11 @@ +class A{ + public: + int x; +}; + +class B: public A{ +}; + +class C: public A, public B{ + int x; +}; diff --git a/test45.in b/test45.in new file mode 100644 index 0000000..b9b125d --- /dev/null +++ b/test45.in @@ -0,0 +1,11 @@ +class A{ + public: + int x; +}; + +class B: public A{ +}; + +class C: public A, public B{ + using B::x; +}; diff --git a/test46.in b/test46.in new file mode 100644 index 0000000..3644cf2 --- /dev/null +++ b/test46.in @@ -0,0 +1,11 @@ +class A{ + public: + int f(int x, int y); +}; + +class B: public A{ +}; + +class C: public A, public B{ + int f(int z, int hello); +}; diff --git a/test47.in b/test47.in new file mode 100644 index 0000000..05becc4 --- /dev/null +++ b/test47.in @@ -0,0 +1,3 @@ +class A: A{ + int x; +}; diff --git a/test48.in b/test48.in new file mode 100644 index 0000000..a45aba9 --- /dev/null +++ b/test48.in @@ -0,0 +1,6 @@ +class A{ + int x; +}; + +class B: public A, private A{ +}; diff --git a/test49.in b/test49.in new file mode 100644 index 0000000..dc3a55b --- /dev/null +++ b/test49.in @@ -0,0 +1,4 @@ +class A{ +}; + +class B: C{}; diff --git a/test50.in b/test50.in new file mode 100644 index 0000000..d31118c --- /dev/null +++ b/test50.in @@ -0,0 +1,8 @@ +class A{ + public: + static int x; + static int f(void); +}; + +class B: public A{ +}; diff --git a/test51.in b/test51.in new file mode 100644 index 0000000..3e53512 --- /dev/null +++ b/test51.in @@ -0,0 +1,16 @@ +class A{ + bool x; + char y; + int z; + float f; + double d; + wchar_t w; + + signed int s; + unsigned char u; + short int sh; + long int l; + + unsigned long int uli; + signed short int *pspi; +};