From 829009250ce37459b984f667aad1a222a3187eb2 Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Mon, 13 Sep 2021 14:30:44 -0700 Subject: [PATCH] tests: add getModuleDep testing --- main_test.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/main_test.go b/main_test.go index 8bf7a4e..0819b27 100644 --- a/main_test.go +++ b/main_test.go @@ -4,6 +4,7 @@ package main import ( + "strings" "testing" ) @@ -25,3 +26,53 @@ func TestStripExts(t *testing.T) { } } } + +func stringSlicesEqual(a []string, b []string) bool { + if len(a) != len(b) { + return false + } + for i, v := range a { + if v != b[i] { + return false + } + } + return true +} + +var testModuleDep string = ` +kernel/net/sched/act_ipt.ko.xz: kernel/net/netfilter/x_tables.ko.xz +kernel/drivers/watchdog/watchdog.ko.xz: +kernel/drivers/usb/serial/ir-usb.ko.xz: kernel/drivers/usb/serial/usbserial.ko.xz +kernel/drivers/gpu/drm/scheduler/gpu-sched.ko.xz: +kernel/drivers/hid/hid-alps.ko.xz: +kernel/net/netfilter/xt_u32.ko.xz: kernel/net/netfilter/x_tables.ko.xz +kernel/net/netfilter/xt_sctp.ko.xz: kernel/net/netfilter/x_tables.ko.xz +kernel/drivers/hwmon/gl518sm.ko.xz: +kernel/drivers/watchdog/dw_wdt.ko.xz: kernel/drivers/watchdog/watchdog.ko.xz +kernel/net/bluetooth/hidp/hidp.ko.xz: kernel/net/bluetooth/bluetooth.ko.xz kernel/net/rfkill/rfkill.ko.xz kernel/crypto/ecdh_generic.ko.xz kernel/crypto/ecc.ko.xz +kernel/fs/nls/nls_iso8859-1.ko.xz: +kernel/net/vmw_vsock/vmw_vsock_virtio_transport.ko.xz: kernel/net/vmw_vsock/vmw_vsock_virtio_transport_common.ko.xz kernel/drivers/virtio/virtio.ko.xz kernel/drivers/virtio/virtio_ring.ko.xz kernel/net/vmw_vsock/vsock.ko.xz +kernel/drivers/gpu/drm/panfrost/panfrost.ko.xz: kernel/drivers/gpu/drm/scheduler/gpu-sched.ko.xz +` + +func TestGetModuleDeps(t *testing.T) { + tables := []struct { + in string + expected []string + }{ + {"nls-iso8859-1", []string{"kernel/fs/nls/nls_iso8859-1.ko.xz"}}, + {"gpu_sched", []string{"kernel/drivers/gpu/drm/scheduler/gpu-sched.ko.xz"}}, + {"dw-wdt", []string{"kernel/drivers/watchdog/dw_wdt.ko.xz", + "kernel/drivers/watchdog/watchdog.ko.xz"}}, + {"gl518sm", []string{"kernel/drivers/hwmon/gl518sm.ko.xz"}}, + } + for _, table := range tables { + out, err := getModuleDeps(table.in, strings.NewReader(testModuleDep)) + if err != nil { + t.Errorf("unexpected error with input: %q, error: %q", table.expected, err) + } + if !stringSlicesEqual(out, table.expected) { + t.Errorf("Expected: %q, got: %q", table.expected, out) + } + } +}