diff --git a/tests/imports/object.d b/tests/imports/object.d new file mode 100644 index 0000000..7452155 --- /dev/null +++ b/tests/imports/object.d @@ -0,0 +1,3 @@ +module object; + +alias string = immutable(char)[]; diff --git a/tests/imports/std/algorithm.d b/tests/imports/std/algorithm.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/array.d b/tests/imports/std/array.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/ascii.d b/tests/imports/std/ascii.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/base64.d b/tests/imports/std/base64.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/bigint.d b/tests/imports/std/bigint.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/bitmanip.d b/tests/imports/std/bitmanip.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/compiler.d b/tests/imports/std/compiler.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/complex.d b/tests/imports/std/complex.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/concurrency.d b/tests/imports/std/concurrency.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/container.d b/tests/imports/std/container.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/conv.d b/tests/imports/std/conv.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/cstream.d b/tests/imports/std/cstream.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/csv.d b/tests/imports/std/csv.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/datetime.d b/tests/imports/std/datetime.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/demangle.d b/tests/imports/std/demangle.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/encoding.d b/tests/imports/std/encoding.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/exception.d b/tests/imports/std/exception.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/file.d b/tests/imports/std/file.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/format.d b/tests/imports/std/format.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/functional.d b/tests/imports/std/functional.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/getopt.d b/tests/imports/std/getopt.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/json.d b/tests/imports/std/json.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/lexer.d b/tests/imports/std/lexer.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/math.d b/tests/imports/std/math.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/mathspecial.d b/tests/imports/std/mathspecial.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/metastrings.d b/tests/imports/std/metastrings.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/mmfile.d b/tests/imports/std/mmfile.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/numeric.d b/tests/imports/std/numeric.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/outbuffer.d b/tests/imports/std/outbuffer.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/parallelism.d b/tests/imports/std/parallelism.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/path.d b/tests/imports/std/path.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/process.d b/tests/imports/std/process.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/random.d b/tests/imports/std/random.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/range.d b/tests/imports/std/range.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/regex.d b/tests/imports/std/regex.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/signals.d b/tests/imports/std/signals.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/socket.d b/tests/imports/std/socket.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/socketstream.d b/tests/imports/std/socketstream.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/stdint.d b/tests/imports/std/stdint.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/stdio.d b/tests/imports/std/stdio.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/stdiobase.d b/tests/imports/std/stdiobase.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/stream.d b/tests/imports/std/stream.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/string.d b/tests/imports/std/string.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/syserror.d b/tests/imports/std/syserror.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/system.d b/tests/imports/std/system.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/traits.d b/tests/imports/std/traits.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/typecons.d b/tests/imports/std/typecons.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/typelist.d b/tests/imports/std/typelist.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/typetuple.d b/tests/imports/std/typetuple.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/uni.d b/tests/imports/std/uni.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/uri.d b/tests/imports/std/uri.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/utf.d b/tests/imports/std/utf.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/uuid.d b/tests/imports/std/uuid.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/variant.d b/tests/imports/std/variant.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/xml.d b/tests/imports/std/xml.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/zip.d b/tests/imports/std/zip.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/std/zlib.d b/tests/imports/std/zlib.d new file mode 100644 index 0000000..e69de29 diff --git a/tests/imports/testfile1.d b/tests/imports/testfile1.d new file mode 100644 index 0000000..dcbb605 --- /dev/null +++ b/tests/imports/testfile1.d @@ -0,0 +1,6 @@ +module testfile1; + +class Base +{ + int z; +} diff --git a/tests/run_tests.sh b/tests/run_tests.sh index ae45e99..573ef96 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -2,12 +2,25 @@ RED="\033[31m" GREEN="\033[32m" YELLOW="\033[33m" NORMAL="\033[0m" +IMPORTS=$(pwd)/imports fail_count=0 pass_count=0 +# Make sure that the server is shut down +echo "Shutting down currently-running server..." +../bin/dcd-client --shutdown 2>/dev/null > /dev/null +sleep 1s; + +# Start up the server +echo "Starting server..." +../bin/dcd-server --ignoreConfig -I $IMPORTS 2>/dev/null > /dev/null & +sleep 1s; + +# Run tests for testCase in tc*; do cd $testCase; + ./run.sh; if [ $? -eq 0 ]; then echo -e "${YELLOW}$testCase:${NORMAL} ... ${GREEN}Pass${NORMAL}"; @@ -16,9 +29,15 @@ for testCase in tc*; do echo -e "${YELLOW}$testCase:${NORMAL} ... ${RED}Fail${NORMAL}"; let fail_count=fail_count+1 fi + cd - > /dev/null; done +# Shut down +echo "Shutting down server..." +../bin/dcd-client --shutdown 2>/dev/null > /dev/null + +# Report if [ $fail_count -eq 0 ]; then echo -e "${GREEN}${pass_count} tests passed and ${fail_count} failed.${NORMAL}" else diff --git a/tests/tc006/file.d b/tests/tc006/file.d index 458ba4a..934220c 100644 --- a/tests/tc006/file.d +++ b/tests/tc006/file.d @@ -4,20 +4,20 @@ S doStuff(int x) { return S(); } void main(string[] args) { - auto a = 10; - auto b = S(1, 2); - int c = 4; - auto d = doStuff(); + auto alpha = 10; + auto bravo = S(1, 2); + int charlie = 4; + auto delta = doStuff(); { - a. + alpha. } { - b. + bravo. } { - c. + charlie. } { - d. + delta. } } diff --git a/tests/tc006/run.sh b/tests/tc006/run.sh index 75b5e43..e380575 100755 --- a/tests/tc006/run.sh +++ b/tests/tc006/run.sh @@ -1,14 +1,14 @@ set -e set -u -dcd-client file.d -c162 > actual1.txt +dcd-client file.d -c184 > actual1.txt diff actual1.txt expected1.txt -dcd-client file.d -c173 > actual2.txt +dcd-client file.d -c199 > actual2.txt diff actual2.txt expected2.txt -dcd-client file.d -c184 > actual3.txt +dcd-client file.d -c216 > actual3.txt diff actual3.txt expected3.txt -dcd-client file.d -c195 > actual4.txt +dcd-client file.d -c231 > actual4.txt diff actual4.txt expected4.txt diff --git a/tests/tc009/run.sh b/tests/tc009/run.sh index d7f0c87..c35e50e 100755 --- a/tests/tc009/run.sh +++ b/tests/tc009/run.sh @@ -2,8 +2,10 @@ set -e set -u dcd-client file.d -c83 > actual1.txt -dcd-client file.d -c93 > actual2.txt -dcd-client file.d -c148 > actual3.txt diff actual1.txt expected1.txt + +dcd-client file.d -c93 > actual2.txt diff actual2.txt expected2.txt + +dcd-client file.d -c148 > actual3.txt diff actual3.txt expected3.txt diff --git a/tests/tc010/expected1.txt b/tests/tc010/expected1.txt new file mode 100644 index 0000000..3a7b6e8 --- /dev/null +++ b/tests/tc010/expected1.txt @@ -0,0 +1,12 @@ +identifiers +__monitor v +__vptr v +alignof k +classinfo v +init k +mangleof k +sizeof k +stringof k +tupleof v +x v +y v diff --git a/tests/tc010/expected2.txt b/tests/tc010/expected2.txt new file mode 100644 index 0000000..508e775 --- /dev/null +++ b/tests/tc010/expected2.txt @@ -0,0 +1,12 @@ +identifiers +__monitor v +__vptr v +alignof k +classinfo v +init k +mangleof k +sizeof k +stringof k +tupleof v +x v +z v diff --git a/tests/tc010/file.d b/tests/tc010/file.d new file mode 100644 index 0000000..10b31c4 --- /dev/null +++ b/tests/tc010/file.d @@ -0,0 +1,12 @@ +import testfile1; + +class Inherits : Base +{ + int x; +} + +void main() +{ + Inherits i; + i. +} diff --git a/tests/tc010/run.sh b/tests/tc010/run.sh new file mode 100755 index 0000000..78eea75 --- /dev/null +++ b/tests/tc010/run.sh @@ -0,0 +1,17 @@ +set -e +set -u + +cp testfile1_old.d ../imports/testfile1.d +# Sleep because modification times aren't stored with granularity of less +# than one second +sleep 1s; + +dcd-client file.d -c84 > actual1.txt +diff actual1.txt expected1.txt + +cp testfile1_new.d ../imports/testfile1.d +# Same here +sleep 1s; + +dcd-client file.d -c84 > actual2.txt +diff actual2.txt expected2.txt diff --git a/tests/tc010/testfile1_new.d b/tests/tc010/testfile1_new.d new file mode 100644 index 0000000..dcbb605 --- /dev/null +++ b/tests/tc010/testfile1_new.d @@ -0,0 +1,6 @@ +module testfile1; + +class Base +{ + int z; +} diff --git a/tests/tc010/testfile1_old.d b/tests/tc010/testfile1_old.d new file mode 100644 index 0000000..87c6edf --- /dev/null +++ b/tests/tc010/testfile1_old.d @@ -0,0 +1,6 @@ +module testfile1; + +class Base +{ + int y; +}