modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/bug345.go (about)

     1  // +build !nacl,!plan9,!windows
     2  // run
     3  
     4  // Copyright 2011 The Go Authors. All rights reserved.
     5  // Use of this source code is governed by a BSD-style
     6  // license that can be found in the LICENSE file.
     7  
     8  package main
     9  
    10  import (
    11  	"fmt"
    12  	"os"
    13  	"os/exec"
    14  	"path/filepath"
    15  )
    16  
    17  func main() {
    18  	// TODO: If we get rid of errchk, re-enable this test on Plan 9 and Windows.
    19  	errchk, err := filepath.Abs("errchk")
    20  	check(err)
    21  
    22  	err = os.Chdir(filepath.Join(".", "fixedbugs", "bug345.dir"))
    23  	check(err)
    24  
    25  	run("go", "tool", "compile", "io.go")
    26  	run(errchk, "go", "tool", "compile", "-e", "main.go")
    27  	os.Remove("io.o")
    28  }
    29  
    30  func run(name string, args ...string) {
    31  	cmd := exec.Command(name, args...)
    32  	out, err := cmd.CombinedOutput()
    33  	if err != nil {
    34  		fmt.Println(string(out))
    35  		fmt.Println(err)
    36  		os.Exit(1)
    37  	}
    38  }
    39  
    40  func check(err error) {
    41  	if err != nil {
    42  		fmt.Println(err)
    43  		os.Exit(1)
    44  	}
    45  }