@@ -19,31 +19,55 @@ container_name="mroonga_build_test_${timestamp}"
19
19
eval $( grep -E -o ' [a-z]+_version=[0-9.]+' $context /Dockerfile)
20
20
mysql_version=$( head -n1 $context /Dockerfile | grep -E -o ' [0-9.]{2,}' )
21
21
22
+ function run_sql() {
23
+ local sql=" $1 "
24
+ docker container exec " ${container_name} " mysql -uroot -sse " ${sql} "
25
+ }
26
+
27
+ function assert() {
28
+ local expected=" $1 "
29
+ local actual=" $2 "
30
+ if [ " ${expected} " = " ${actual} " ]; then
31
+ return 0
32
+ fi
33
+ echo -e " Not match.\nexpected: <${expected} >\nactual : <${actual} >"
34
+ return 1
35
+ }
36
+
37
+ function cleanup() {
38
+ sudo docker container stop " ${container_name} "
39
+ sudo docker container logs " ${container_name} "
40
+ sudo docker container rm " ${container_name} "
41
+ }
42
+
43
+ trap cleanup EXIT
22
44
sudo docker container run \
23
45
-d \
24
- -p 33061:3306 \
25
46
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
26
47
--name $container_name \
27
48
$image_name
49
+
28
50
# ## Should test.
29
51
while true ; do
30
- mysqladmin -h 127.0.0.1 -P 33061 -uroot ping && break
52
+ docker container exec " ${container_name} " mysqladmin -uroot ping && break
31
53
sleep 1
32
54
done
33
- (echo -e " mroonga_libgroonga_version\t${groonga_version} " ; \
34
- echo -e " mroonga_version\t${mroonga_version} " ; \
35
- echo -e " version\t${mysql_version} " ) \
36
- > /tmp/expected.txt
37
- mysql_e=" mysql -h 127.0.0.1 -P 33061 -uroot -sse"
38
- ($mysql_e " SHOW VARIABLES LIKE 'mroonga_libgroonga_version'" ; \
39
- $mysql_e " SHOW VARIABLES LIKE 'mroonga_version'" ; \
40
- $mysql_e " SHOW VARIABLES LIKE 'version'" ) \
41
- > /tmp/actual.txt
42
- set +e
43
- diff -u /tmp/expected.txt /tmp/actual.txt
44
- success=$?
45
- set -e
46
- sudo docker container stop $container_name
47
- sudo docker container logs $container_name
48
- sudo docker container rm $container_name
49
- exit $success
55
+
56
+ for i in {1..30}; do
57
+ # Need to wait a bit until Mroonga is available.
58
+ run_sql " SELECT mroonga_command('status')" > /dev/null 2>&1 && break
59
+ sleep 1
60
+ done
61
+
62
+ assert \
63
+ " \" ${groonga_version} \" " \
64
+ " $( run_sql " SELECT JSON_EXTRACT(mroonga_command('status'), '$.version')" ) "
65
+ assert \
66
+ " mroonga_libgroonga_version ${groonga_version} " \
67
+ " $( run_sql " SHOW VARIABLES LIKE 'mroonga_libgroonga_version'" ) "
68
+ assert \
69
+ " mroonga_version ${mroonga_version} " \
70
+ " $( run_sql " SHOW VARIABLES LIKE 'mroonga_version'" ) "
71
+ assert \
72
+ " version ${mysql_version} " \
73
+ " $( run_sql " SHOW VARIABLES LIKE 'version'" ) "
0 commit comments