@@ -30,10 +30,35 @@ grepOutput() {
30
30
exit 1
31
31
}
32
32
33
+ exactOutput () {
34
+ local output_file=" command_output.tmp"
35
+ local expect_file=" command_expect.tmp"
36
+
37
+ echo -n " ${@: $# } " | xargs > $expect_file
38
+
39
+ if ! " ${@: 1: (($# - 1))} " | xargs > $output_file
40
+ then
41
+ echo " Command failed!"
42
+
43
+ elif ! diff -up $output_file $expect_file
44
+ then
45
+ echo " Output didn't match expected test"
46
+ else
47
+ rm $output_file
48
+ rm $expect_file
49
+ return 0
50
+ fi
51
+
52
+ cat $output_file
53
+ rm $output_file
54
+ rm $expect_file
55
+ exit 1
56
+ }
57
+
33
58
# simple hello world
34
59
source=' void main() { import std.stdio; writeln("Hello World"); }'
35
60
bsource=$( echo $source | base64 -w0)
36
- [ " $( docker run --rm $dockerId $bsource ) " == " Hello World" ]
61
+ exactOutput docker run --rm $dockerId $bsource " Hello World"
37
62
38
63
# stdin
39
64
source=' void main() { import std.algorithm, std.stdio; stdin.byLine.each!writeln;}'
@@ -45,32 +70,32 @@ output="$(docker run --rm $dockerId $bsource $bstdin)"
45
70
# custom arguments
46
71
source=' void main() { import std.stdio; version(Foo) writeln("Hello World"); }'
47
72
bsource=$( echo $source | base64 -w0)
48
- [ " $( DOCKER_FLAGS=" -version=Fooo" docker run -e DOCKER_FLAGS --rm $dockerId $bsource ) " == " " ]
73
+ exactOutput env DOCKER_FLAGS=" -version=Fooo" docker run -e DOCKER_FLAGS --rm $dockerId $bsource " "
49
74
[ " $( DOCKER_FLAGS=" -version=Foo" docker run -e DOCKER_FLAGS --rm $dockerId $bsource ) " != " Hello world" ]
50
75
[ " $( DOCKER_FLAGS=" -version=Bar -version=Foo" docker run -e DOCKER_FLAGS --rm $dockerId $bsource ) " != " Hello world" ]
51
76
52
77
# test runtime args
53
78
source=' void main(string[] args) { import std.stdio; writeln(args[1..$]); }'
54
79
bsource=$( echo $source | base64 -w0)
55
- [ " $( DOCKER_RUNTIME_ARGS=" foo -test=bar" docker run -e DOCKER_RUNTIME_ARGS --rm $dockerId $bsource ) " == " [\" foo\" , \" -test=bar\" ]" ]
80
+ exactOutput env DOCKER_RUNTIME_ARGS=" foo -test=bar" docker run -e DOCKER_RUNTIME_ARGS --rm $dockerId $bsource " [\" foo\" , \" -test=bar\" ]"
56
81
57
82
# # dub file
58
83
source=' /++dub.sdl: name"foo"+/ void main() { import std.stdio; writeln("Hello World"); }'
59
84
bsource=$( echo " $source " | base64 -w0)
60
- [ " $( docker run --rm $dockerId $bsource ) " == " Hello World" ]
85
+ exactOutput docker run --rm $dockerId " $bsource " " Hello World"
61
86
62
87
source=" /++dub.sdl: name\" foo\" \n dependency\" mir\" version=\" *\" +/ void main() { import mir.combinatorics, std.stdio; writeln([0, 1].permutations); }"
63
88
bsource=$( echo -e " $source " | base64 -w0)
64
- [ " $( docker run --rm " $dockerId " " $bsource " ) " == " [[0, 1], [1, 0]]" ]
89
+ grepOutput docker run --rm $dockerId " $bsource " " [[0, 1], [1, 0]]"
65
90
66
- source=" /++dub.sdl: name\" foo\" \n dependency\" vibe-d\" version=\" * \" +/ void main() { import vibe.d, std.stdio; Json a ; a.writeln; }"
91
+ source=" /++dub.sdl: name\" foo\" \n dependency\" vibe-d\" version=\" >=0.9.7 \" +/ void main() { import vibe.d, std.stdio; auto a = Json( \" hello world \" ) ; a.writeln; }"
67
92
bsource=$( echo -e " $source " | base64 -w0)
68
- [ " $( docker run --rm " $dockerId " " $bsource " ) " == " null " ]
93
+ grepOutput docker run --rm $dockerId " $bsource " " \" hello world \" "
69
94
70
95
# # dub file with unittest
71
96
source=" /++dub.sdl: name\" foo\" \n dependency\" mir\" version=\" *\" +/ unittest { import mir.combinatorics, std.stdio; writeln([0, 1].permutations); } version(unittest) {} else { void main() { } } "
72
97
bsource=$( echo -e " $source " | base64 -w0)
73
- [ " $( DOCKER_FLAGS=" -unittest" docker run -e DOCKER_FLAGS --rm $dockerId $bsource ) " == " [[0, 1], [1, 0]]" ]
98
+ grepOutput env DOCKER_FLAGS=" -unittest" docker run -e DOCKER_FLAGS --rm $dockerId $bsource " [[0, 1], [1, 0]]"
74
99
75
100
# Test -c
76
101
source=' void main() { static assert(0); }'
@@ -142,7 +167,7 @@ void main() {
142
167
EOF
143
168
)
144
169
bsource=$( echo " $source " | base64 -w0)
145
- [ " $( docker run --rm $dockerId $bsource ) " == " Hello World" ]
170
+ exactOutput docker run --rm $dockerId $bsource " Hello World"
146
171
147
172
# Check dpp Hello World with HAR
148
173
source=$( cat << EOF
@@ -168,4 +193,4 @@ void main() {
168
193
EOF
169
194
)
170
195
bsource=$( echo " $source " | base64 -w0)
171
- [ " $( docker run --rm $dockerId $bsource ) " == " 30" ]
196
+ exactOutput docker run --rm $dockerId $bsource " 30"
0 commit comments