| // Copyright 2017 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. |
| |
| // This file is here just to cause problems. |
| // main.swig turns into a file also named main.go. |
| // Make sure cmd/go keeps them separate |
| // when both are passed to cgo. |
| |
| package main |
| |
| //int F(void) { return 1; } |
| import "C" |
| import ( |
| "fmt" |
| "os" |
| ) |
| |
| func F() int { return int(C.F()) } |
| |
| func main() { |
| if x := int(C.F()); x != 1 { |
| fatal("x = %d, want 1", x) |
| } |
| |
| // Open this file itself and verify that the first few characters are |
| // as expected. |
| f := Fopen("main.go", "r") |
| if f.Swigcptr() == 0 { |
| fatal("fopen failed") |
| } |
| if Fgetc(f) != '/' || Fgetc(f) != '/' || Fgetc(f) != ' ' || Fgetc(f) != 'C' { |
| fatal("read unexpected characters") |
| } |
| if Fclose(f) != 0 { |
| fatal("fclose failed") |
| } |
| |
| println("OK") |
| } |
| |
| func fatal(f string, args ...any) { |
| fmt.Fprintln(os.Stderr, fmt.Sprintf(f, args...)) |
| os.Exit(1) |
| } |