From 77f31e1f821f48a72259fdbd9d285d1ce16956f5 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 6 Oct 2023 17:43:01 +0200 Subject: 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 --- prog/resources_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'prog/resources_test.go') 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") -- cgit mrf-deployment