X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=t%2Fintegration%2Fsimple_query.sh;h=22bd815a95f4733ef09c52f44b2996b9ca13de13;hp=37c57a1b4221387404ce2ddb9002cfc1a70e8adf;hb=56b97a180a53aecbfe9f7162b8ece3faae973cf9;hpb=97aa30ed76096fbd663290d340de40a9ca7acdab diff --git a/t/integration/simple_query.sh b/t/integration/simple_query.sh index 37c57a1..22bd815 100755 --- a/t/integration/simple_query.sh +++ b/t/integration/simple_query.sh @@ -33,26 +33,88 @@ set -e source "$( dirname "$0" )/test_lib.sh" -cat < "$TESTDIR/sysdbd.conf" +cat < "$SYSDBD_CONF" Listen "$SOCKET_FILE" PluginDir "$PLUGIN_DIR" Interval 2 LoadBackend mock_plugin - + EOF -"$TOP_SRCDIR/src/sysdbd" -D -C "$TESTDIR/sysdbd.conf" & -sysdbd_pid=$! +run_sysdbd -D -C "$SYSDBD_CONF" wait_for_sysdbd sleep 3 -"$TOP_SRCDIR/src/sysdb" -H "$SOCKET_FILE" -c LIST \ +# 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="$( run_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"' + +output="$( run_sysdb -H "$SOCKET_FILE" -c "FETCH 'host1.example.com'" )" +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" -kill $! + | 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 + +# 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="$( run_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 + +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 +