blob: cb8c63213331e530a7cdade2e56480a96fd554b0 [file] [log] [blame]
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cosboot
import "testing"
func TestNextGRUBCmdLine(t *testing.T) {
tests := []struct {
name string
input string
want string
}{
{
name: "BootA",
input: "testdata/grubcfgA.img",
want: `/syslinux/vmlinuz.A init=/usr/lib/systemd/systemd rootwait ro noresume loglevel=7 console=tty1 console=ttyS0,115200 security=apparmor virtio_net.napi_tx=1 nmi_watchdog=0 csm.disabled=1 loadpin.exclude=kernel-module,firmware modules-load=loadpin_trigger firmware_class.path=/var/lib/nvidia/firmware module.sig_enforce=1 dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm_verity.dev_wait=1 i915.modeset=1 cros_efi root=/dev/dm-0 dm-mod.create="vroot,,,ro,0 4077568 verity 0 PARTUUID=D4A2048A-D85B-C146-A5E0-08A1251A55C2 PARTUUID=D4A2048A-D85B-C146-A5E0-08A1251A55C2 4096 4096 509696 509696 sha256 cd98fb63a9a93194d8465937c46fce496143b4441be776bf504d9f09093e308d ad6ac492b67f319a8ebf86f034af467d207bffb20483a039b80e6c2e4572e0b4"`,
},
{
name: "BootB",
input: "testdata/grubcfgB.img",
want: `/syslinux/vmlinuz.B init=/usr/lib/systemd/systemd rootwait ro noresume loglevel=7 console=tty1 console=ttyS0,115200 security=apparmor virtio_net.napi_tx=1 nmi_watchdog=0 csm.disabled=1 loadpin.exclude=kernel-module,firmware modules-load=loadpin_trigger firmware_class.path=/var/lib/nvidia/firmware module.sig_enforce=1 dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm_verity.dev_wait=1 i915.modeset=1 cros_efi root=/dev/dm-0 dm-mod.create="vroot,,,ro,0 4077568 verity 0 PARTUUID=336A62C8-AF4C-F54C-AEB8-322675266630 PARTUUID=336A62C8-AF4C-F54C-AEB8-322675266630 4096 4096 509696 509696 sha256 cd98fb63a9a93194d8465937c46fce496143b4441be776bf504d9f09093e308d ad6ac492b67f319a8ebf86f034af467d207bffb20483a039b80e6c2e4572e0b4"`,
},
}
for _, test := range tests {
test := test
t.Run(test.name, func(t *testing.T) {
got, err := NextGRUBCmdLine(test.input)
if err != nil {
t.Fatalf("NextGRUBCmdLine(%q) = %v; want nil", test.input, err)
}
if got != test.want {
t.Errorf("NextGRUBCmdLine(%q) = %q; want %q", test.input, got, test.want)
}
})
}
}