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  }