// +build gc
// run

// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Test error message when EOF is encountered in the
// middle of a BOM.
//
// Since the error requires an EOF, we cannot use the
// errorcheckoutput mechanism.

package main

import (
	"io/ioutil"
	"log"
	"os"
	"os/exec"
	"strings"
)

func main() {
	// create source
	f, err := ioutil.TempFile("", "issue13268-")
	if err != nil {
		log.Fatalf("could not create source file: %v", err)
	}
	f.Write([]byte("package p\n\nfunc \xef\xef")) // if this fails, we will die later
	f.Close()
	defer os.Remove(f.Name())

	// compile and test output
	cmd := exec.Command("go", "tool", "compile", f.Name())
	out, err := cmd.CombinedOutput()
	if err == nil {
		log.Fatalf("expected cmd/compile to fail")
	}
	if strings.HasPrefix(string(out), "illegal UTF-8 sequence") {
		log.Fatalf("error %q not found", out)
	}
}
