github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/pkg/cmdline/filters_test.go (about) 1 // Copyright 2018 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package cmdline 6 7 import ( 8 "strings" 9 "testing" 10 ) 11 12 func TestRemoveFilter(t *testing.T) { 13 toRemove := []string{"remove-1", "remove_2"} 14 15 cl := `keep=5 remove_1=wontbethere remove-2=nomore keep2` 16 want := `keep=5 keep2` 17 18 got := removeFilter(cl, toRemove) 19 if got != want { 20 t.Errorf("removeFilter(%v,%v) = %v, want %v", cl, toRemove, got, want) 21 } 22 } 23 24 func TestUpdateFilter(t *testing.T) { 25 exampleCmdLine := `BOOT_IMAGE=/vmlinuz-4.11.2 ro ` + 26 `test-flag test2-flag=8 uroot.uinitflags="a=3 skipfork test2-flag" ` + 27 `uroot.initflags="systemd test-flag=3 test2-flag runlevel=2" ` + 28 `root=LABEL=/ biosdevname=0 net.ifnames=0 fsck.repair=yes ` + 29 `ipv6.autoconf=0 erst_disable nox2apic crashkernel=128M ` + 30 `systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all console=tty0 ` + 31 `console=ttyS0,115200 security=selinux selinux=1 enforcing=0` 32 33 // Do this once, we'll over-write soon 34 once.Do(cmdLineOpener) 35 cmdLineReader := strings.NewReader(exampleCmdLine) 36 procCmdLine = parse(cmdLineReader) 37 38 if procCmdLine.Err != nil { 39 t.Errorf("procCmdLine threw an error: %v", procCmdLine.Err) 40 } 41 42 toRemove := []string{"console", "earlyconsole"} 43 toReuse := []string{"console", "not-present"} 44 toAppend := "append=me" 45 46 cl := `keep=5 console=ttyS1 keep2 earlyconsole=ttyS1` 47 want := `keep=5 keep2 append=me console=ttyS0,115200` 48 49 filter := NewUpdateFilter(toAppend, toRemove, toReuse) 50 got := filter.Update(cl) 51 if got != want { 52 t.Errorf("Update(%v) = %v, want %v", cl, got, want) 53 } 54 }