Code

t/integration: Add a simple time-series fetcher test.
[sysdb.git] / t / integration / query.sh
index e034e7c1d697e1694cb14e849885037832b5a706..b2e6ed82a644074cb3745b58b3d45e388a471313 100755 (executable)
@@ -48,8 +48,13 @@ run_sysdbd -D -C "$SYSDBD_CONF"
 wait_for_sysdbd
 sleep 3
 
+# Invalid user.
+output="$( run_sysdb_nouser -H "$SOCKET_FILE" \
+  -U $SYSDB_USER-invalid -c 'LIST hosts' 2>&1 )" && exit 1
+echo "$output" | grep -F 'Access denied'
+
 # On parse errors, expect a non-zero exit code.
-output="$( run_sysdb -H "$SOCKET_FILE" -c INVALID )" && exit 1
+output="$( run_sysdb -H "$SOCKET_FILE" -c INVALID 2>&1 )" && exit 1
 echo "$output" | grep "Failed to parse query 'INVALID'"
 echo "$output" | grep "parse error: syntax error"
 
@@ -93,20 +98,37 @@ echo "$output" | grep -F 'localhost' && exit 1
 echo "$output" | grep -F 'other.host.name' && exit 1
 echo "$output" | grep -F 'some.host.name' && exit 1
 
+output="$( run_sysdb -H "$SOCKET_FILE" \
+  -c "FETCH host 'host1.example.com' FILTER last_update < 0" 2>&1 )" \
+  && exit 1
+echo "$output" | grep -F 'not found'
+
 (echo 'LIST hosts;'; sleep 1; echo "FETCH host 'host1.example.com'") \
        | run_sysdb -H "$SOCKET_FILE"
 
 # When requesting information for unknown hosts, expect a non-zero exit code.
-output="$( run_sysdb -H "$SOCKET_FILE" -c "FETCH host 'does.not.exist'" )" \
-       && exit 1
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "FETCH host 'does.not.exist'" 2>&1 )" && exit 1
 echo "$output" | grep -F 'not found'
 
 run_sysdb -H "$SOCKET_FILE" \
                -c "TIMESERIES 'invalid.host'.'invalid-metric'" && exit 1
 
 # Does not work yet since there is no fetcher plugin.
-run_sysdb -H "$SOCKET_FILE" \
-               -c "TIMESERIES 'some.host.name'.'foo/bar/qux'" && exit 1
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "TIMESERIES 'some.host.name'.'foo/bar/qux'" )"
+echo "$output" \
+       | grep -F '"value": "1.000000"' \
+       | grep -F '"value": "2.000000"' \
+       | grep -F '"value": "3.000000"' \
+       | grep -F '"value": "4.000000"' \
+       | grep -F '"value": "5.000000"' \
+       | grep -F '"value": "6.000000"' \
+       | grep -F '"value": "7.000000"' \
+       | grep -F '"value": "8.000000"' \
+       | grep -F '"value": "9.000000"' \
+       | grep -F '"value": "10.000000"'
 
 stop_sysdbd
 
+# vim: set tw=78 sw=4 ts=4 noexpandtab :