Code

sysdb: When handling a reply, base further actions on the response code.
[sysdb.git] / t / integration / simple_query.sh
index 7c6277554577510e7bb7536d0be4c121ae74d07d..ec83f20199f3195b4c83f055a4cb9132b346dae4 100755 (executable)
@@ -43,19 +43,47 @@ LoadBackend mock_plugin
 </Backend>
 EOF
 
-"$SYSDBD" -D -C "$SYSDBD_CONF" &
+$SYSDBD -D -C "$SYSDBD_CONF" &
 sysdbd_pid=$!
 
 wait_for_sysdbd
 sleep 3
 
+output="$( $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 )"
 echo "$output" \
        | grep -F '"host1.example.com"' \
-       | grep -F "host2.example.com" \
-       | grep -F "localhost" \
-       | grep -F "other.host.name" \
-       | grep -F "some.host.name"
+       | grep -F '"host2.example.com"' \
+       | grep -F '"localhost"' \
+       | grep -F '"other.host.name"' \
+       | grep -F '"some.host.name"'
+
+output="$( $SYSDB -H "$SOCKET_FILE" -c "FETCH 'host1.example.com'" )"
+echo "$output" \
+       | grep -F '"host1.example.com"' \
+       | grep -F '"mock service"' \
+       | grep -E '"other attribute".*"special value"'
+echo "$output" | grep -F 'host2.example.com' && exit 1
+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'" )" \
+       && exit 1
+echo "$output" | grep -F 'not found'
+
+output="$( $SYSDB -H "$SOCKET_FILE" \
+       -c "LOOKUP hosts WHERE attribute.architecture = 'x42'" )"
+echo "$output" \
+       | grep -F '"host1.example.com"' \
+       | grep -F '"host2.example.com"'
+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