[smoke_test] Updated to support commands used in fuchsia.dev guides
Change-Id: I6ddd08998d929c9bb16c87f726c5bcc65ecaeba3
Reviewed-on: https://fuchsia-review.googlesource.com/c/sdk-samples/drivers/+/738544
Reviewed-by: Renato Mangini Dias <mangini@google.com>
Commit-Queue: Wayne Piekarski <waynepie@google.com>
diff --git a/scripts/smoke_test.sh b/scripts/smoke_test.sh
index 4ccbbb9..283a58d 100755
--- a/scripts/smoke_test.sh
+++ b/scripts/smoke_test.sh
@@ -6,7 +6,7 @@
# Run this from the root of the repo with `scripts/smoke_test.sh`
-set -e
+set -e -o pipefail
emu_name=_smoke_test
@@ -69,10 +69,13 @@
# build all samples in this repository
print_and_run tools/bazel build src:samples_repository
+ # other build commands in https://fuchsia.dev/fuchsia-src/get-started/sdk/get-started-with-driver
+ print_and_run tools/bazel build --config=fuchsia_x64 //src/qemu_edu/drivers:qemu_edu
bootstrap_ssh
print_and_run tools/ffx doctor --restart-daemon
+ print_and_run tools/ffx sdk version
current_target="$(tools/ffx target default get)"
@@ -94,6 +97,9 @@
wait_for_emu_rcs
+ # CQ actually uses mawk and not awk or gawk, so does not support symbols in search string
+ check_output() { awk -v SEARCH="$@" '$0 ~ SEARCH{rc=1; print "Found match: "$0}{print $0}; END{exit !rc}' || { echo "Failed to find expected string: $@"; exit 1; } }
+
# start the package server
print_and_run tools/ffx repository server start
@@ -103,14 +109,15 @@
print_and_run tools/ffx target default set $emu_name
# register the package repository with on-demand prebuilt packages
- print_and_run tools/ffx target repository register -r $repo_name --alias fuchsia.com
+ print_and_run tools/ffx target repository register -r $repo_name --alias fuchsia.com --alias chromium.org
+ print_and_run tools/ffx repository list
# register a driver and verify that it registered succesfully
- print_and_run tools/bazel run src/qemu_edu/drivers:pkg.component
+ print_and_run tools/bazel run src/qemu_edu/drivers:pkg.component | check_output "Node 'root.sys.platform.platform-passthrough.PCI0.bus.00_06_0_.pci-00_06.0-fidl'"
# wait for driver to load
sleep 1
- print_and_run tools/ffx driver list --loaded | grep qemu_edu
+ print_and_run tools/ffx driver list --loaded | check_output "qemu_edu"
# interact with driver
print_and_run tools/bazel run src/qemu_edu/tools:pkg.eductl_tool -- fact 12
@@ -118,6 +125,23 @@
# run tests on the emulator
print_and_run tools/bazel test src/qemu_edu/tests:pkg
+ # other run commands in https://fuchsia.dev/fuchsia-src/get-started/sdk/get-started-with-driver
+ print_and_run tools/bazel run --config=fuchsia_x64 //src/qemu_edu/drivers:pkg.component | check_output "No new nodes were bound"
+ print_and_run tools/bazel run --config=fuchsia_x64 //src/qemu_edu/tools:pkg.eductl_tool -- live
+ # TODO: fxb/113254 | check_output "Liveness check passed"
+ print_and_run tools/bazel run --config=fuchsia_x64 //src/qemu_edu/tools:pkg.eductl_tool -- fact 12
+ # TODO: fxb/113254 | check_output "479001600"
+ print_and_run tools/ffx component show qemu_edu.cm | check_output "Moniker: /bootstrap/universe-pkg-drivers:root.sys.platform.platform-passthrough.PCI0.bus.00_06_0_.pci-00_06.0-fidl"
+ print_and_run tools/ffx driver list-devices | check_output "root.sys.platform.platform-passthrough.PCI0.bus.00_06_0"
+ print_and_run tools/ffx driver list-devices root.sys.platform.platform-passthrough.PCI0.bus.00_06_0_ --verbose | check_output "Name : 00_06_0_"
+ print_and_run tools/ffx driver list-hosts | check_output "fuchsia-pkg://bazel.pkg.component/qemu_edu#meta/qemu_edu.cm"
+ print_and_run tools/ffx driver lspci | check_output "Host bridge:"
+ # check debugging tools work
+ test_zxdb() { echo quit | tools/ffx debug connect; }
+ print_and_run test_zxdb | check_output "Connected successfully"
+ test_fidlcat() { timeout 10s tools/ffx debug fidl --remote-name qemu_edu.cm --fidl-ir-path bazel-out/ || if [ "$?" != "124" ]; then /bin/false; fi; }
+ print_and_run test_fidlcat
+
echo "Success!"
}