github.com/mvdan/u-root-coreutils@v0.0.0-20230122170626-c2eef2898555/integration/testcmd/generic/uinit/generic.go (about) 1 // Copyright 2021 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 main 6 7 import ( 8 "errors" 9 "fmt" 10 "log" 11 "os" 12 "os/exec" 13 14 "github.com/mvdan/u-root-coreutils/integration/testcmd/common" 15 "golang.org/x/sys/unix" 16 ) 17 18 func runTest() error { 19 cleanup, err := common.MountSharedDir() 20 if err != nil { 21 return err 22 } 23 defer cleanup() 24 defer common.CollectKernelCoverage() 25 26 // Run the test script test.elv 27 test := "/testdata/test.elv" 28 if _, err := os.Stat(test); os.IsNotExist(err) { 29 return errors.New("could not find any test script to run") 30 } 31 cmd := exec.Command("elvish", test) 32 cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr 33 34 if err := cmd.Run(); err != nil { 35 return fmt.Errorf("test.elv ran unsuccessfully: %v", err) 36 } 37 return nil 38 } 39 40 func main() { 41 if err := runTest(); err != nil { 42 log.Printf("Tests failed: %v", err) 43 } else { 44 log.Print("Tests passed") 45 } 46 47 if err := unix.Reboot(unix.LINUX_REBOOT_CMD_POWER_OFF); err != nil { 48 log.Fatalf("Failed to reboot: %v", err) 49 } 50 }