// Copyright 2009 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.

// $G $F.go && $L $F.$A && ./$A.out readfile.go
// # This is some data we can recognize

package main

func main() {
	var s string;
	var ok bool;

	s, ok = sys.readfile("readfile.go");
	if !ok {
		print("couldn't readfile\n");
		sys.exit(1)
	}
	start_of_file :=
		"// $G $F.go && $L $F.$A && ./$A.out readfile.go\n" +
		"// # This is some data we can recognize\n" +
		"\n" +
		"package main\n";
	if s[0:102] != start_of_file {
		print("wrong data\n");
		sys.exit(1)
	}
}
