aboutsummaryrefslogtreecommitdiffstats
path: root/prog/resources_test.go
diff options
context:
space:
mode:
authorPaul Chaignon <paul.chaignon@gmail.com>2023-10-06 17:43:01 +0200
committerAleksandr Nogikh <nogikh@google.com>2023-10-09 10:22:31 +0000
commit77f31e1f821f48a72259fdbd9d285d1ce16956f5 (patch)
treeb05ba6bb8ea808979df3bcf6a03378566290e436 /prog/resources_test.go
parent7236594a2c63f3be360ed0a3feb63b4621530e27 (diff)
prog: test optional input resources are skipped
This commit adds a unit test for getInputResources, to verify in particular that it doesn't return input resources that are optional. Note we can't test the built-in "optional[]" because that relies on unions and those aren't supported yet. Signed-off-by: Paul Chaignon <paul.chaignon@gmail.com>
Diffstat (limited to 'prog/resources_test.go')
-rw-r--r--prog/resources_test.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/prog/resources_test.go b/prog/resources_test.go
index f0ba81adf..8db8dbd17 100644
--- a/prog/resources_test.go
+++ b/prog/resources_test.go
@@ -98,6 +98,32 @@ func TestTransitivelyEnabledCallsLinux(t *testing.T) {
}
}
+func TestGetInputResources(t *testing.T) {
+ expectedRequiredResources := map[string]bool{
+ "required_res1": false,
+ }
+
+ t.Parallel()
+ target, err := GetTarget("test", "64")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ resources := target.getInputResources(target.SyscallMap["test$optional_res"])
+ for _, resource := range resources {
+ if _, ok := expectedRequiredResources[resource.Name]; ok {
+ expectedRequiredResources[resource.Name] = true
+ } else {
+ t.Fatalf(" unexpected %v", resource.Name)
+ }
+ }
+ for expectedRes, found := range expectedRequiredResources {
+ if !found {
+ t.Fatalf(" missing %v", expectedRes)
+ }
+ }
+}
+
func TestClockGettime(t *testing.T) {
t.Parallel()
target, err := GetTarget("linux", "amd64")