Code

plugin: Make sdb_plugin_info_t public.
[sysdb.git] / t / integration / simple_query.sh
index d413b997ea4e6d422c2747e422904bda17eed398..22bd815a95f4733ef09c52f44b2996b9ca13de13 100755 (executable)
@@ -39,20 +39,21 @@ PluginDir "$PLUGIN_DIR"
 Interval 2
 
 LoadBackend mock_plugin
-<Backend "test::integration::mock">
+<Backend "mock_plugin">
 </Backend>
 EOF
 
-$SYSDBD -D -C "$SYSDBD_CONF" &
-sysdbd_pid=$!
+run_sysdbd -D -C "$SYSDBD_CONF"
 
 wait_for_sysdbd
 sleep 3
 
-output="$( $SYSDB -H "$SOCKET_FILE" -c INVALID )"
+# On parse errors, expect a non-zero exit code.
+output="$( run_sysdb -H "$SOCKET_FILE" -c INVALID )" && exit 1
+echo "$output" | grep "Failed to parse query 'INVALID'"
 echo "$output" | grep "parse error: syntax error"
 
-output="$( $SYSDB -H "$SOCKET_FILE" -c LIST )"
+output="$( run_sysdb -H "$SOCKET_FILE" -c LIST )"
 echo "$output" \
        | grep -F '"host1.example.com"' \
        | grep -F '"host2.example.com"' \
@@ -60,7 +61,7 @@ echo "$output" \
        | grep -F '"other.host.name"' \
        | grep -F '"some.host.name"'
 
-output="$( $SYSDB -H "$SOCKET_FILE" -c "FETCH 'host1.example.com'" )"
+output="$( run_sysdb -H "$SOCKET_FILE" -c "FETCH 'host1.example.com'" )"
 echo "$output" \
        | grep -F '"host1.example.com"' \
        | grep -F '"mock service"' \
@@ -70,11 +71,12 @@ 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="$( $SYSDB -H "$SOCKET_FILE" -c "FETCH 'does.not.exist'" )" \
+# When requesting information for unknown hosts, expect a non-zero exit code.
+output="$( run_sysdb -H "$SOCKET_FILE" -c "FETCH 'does.not.exist'" )" \
        && exit 1
 echo "$output" | grep -F 'not found'
 
-output="$( $SYSDB -H "$SOCKET_FILE" \
+output="$( run_sysdb -H "$SOCKET_FILE" \
        -c "LOOKUP hosts WHERE attribute.architecture = 'x42'" )"
 echo "$output" \
        | grep -F '"host1.example.com"' \
@@ -83,6 +85,36 @@ 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
 
-kill $sysdbd_pid
-wait $sysdbd_pid
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts WHERE attribute.name != 'architecture'" )"
+echo "$output" \
+       | grep -F '"some.host.name"' \
+       | grep -F '"localhost"'
+echo "$output" | grep -F 'other.host.name' && exit 1
+echo "$output" | grep -F 'host1.example.com' && exit 1
+echo "$output" | grep -F 'host2.example.com' && exit 1
+
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts WHERE service.name = 'sysdbd'" )"
+echo "$output" | grep -F '"localhost"'
+echo "$output" | grep -F 'some.host.name' && exit 1
+echo "$output" | grep -F 'other.host.name' && exit 1
+echo "$output" | grep -F 'host1.example.com' && exit 1
+echo "$output" | grep -F 'host2.example.com' && exit 1
+
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts WHERE host.name =~ 'example.com'" )"
+echo "$output" \
+       | grep -F '"host1.example.com"' \
+       | grep -F '"host2.example.com"'
+echo "$output" | grep -F 'some.host.name' && exit 1
+echo "$output" | grep -F 'other.host.name' && exit 1
+echo "$output" | grep -F 'localhost' && exit 1
+
+# When querying hosts that don't exist, expect a zero exit code.
+output="$( run_sysdb -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts WHERE attribute.invalid = 'none'" )"
+echo $output | grep -E '^\[\]$'
+
+stop_sysdbd