Source file test/fixedbugs/issue13268.go

     1  // run
     2  
     3  //go:build gc
     4  
     5  // Copyright 2015 The Go Authors. All rights reserved.
     6  // Use of this source code is governed by a BSD-style
     7  // license that can be found in the LICENSE file.
     8  
     9  // Test error message when EOF is encountered in the
    10  // middle of a BOM.
    11  //
    12  // Since the error requires an EOF, we cannot use the
    13  // errorcheckoutput mechanism.
    14  
    15  package main
    16  
    17  import (
    18  	"io/ioutil"
    19  	"log"
    20  	"os"
    21  	"os/exec"
    22  	"strings"
    23  )
    24  
    25  func main() {
    26  	// create source
    27  	f, err := ioutil.TempFile("", "issue13268-")
    28  	if err != nil {
    29  		log.Fatalf("could not create source file: %v", err)
    30  	}
    31  	f.Write([]byte("package p\n\nfunc \xef\xef")) // if this fails, we will die later
    32  	f.Close()
    33  	defer os.Remove(f.Name())
    34  
    35  	// compile and test output
    36  	cmd := exec.Command("go", "tool", "compile", f.Name())
    37  	out, err := cmd.CombinedOutput()
    38  	if err == nil {
    39  		log.Fatalf("expected cmd/compile to fail")
    40  	}
    41  	if strings.HasPrefix(string(out), "illegal UTF-8 sequence") {
    42  		log.Fatalf("error %q not found", out)
    43  	}
    44  }
    45  

View as plain text