// 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. package cgotest /* #define HELLO "hello" #define WORLD "world" #define HELLO_WORLD HELLO "\000" WORLD struct foo { char c; }; #define SIZE_OF(x) sizeof(x) #define SIZE_OF_FOO SIZE_OF(struct foo) #define VAR1 VAR #define VAR var int var = 5; #define ADDR &var #define CALL fn() int fn(void) { return ++var; } */ import "C" import "testing" func test18720(t *testing.T) { if got, want := C.HELLO_WORLD, "hello\000world"; got != want { t.Errorf("C.HELLO_WORLD == %q, expected %q", got, want) } if got, want := C.VAR1, C.int(5); got != want { t.Errorf("C.VAR1 == %v, expected %v", got, want) } if got, want := *C.ADDR, C.int(5); got != want { t.Errorf("*C.ADDR == %v, expected %v", got, want) } if got, want := C.CALL, C.int(6); got != want { t.Errorf("C.CALL == %v, expected %v", got, want) } if got, want := C.CALL, C.int(7); got != want { t.Errorf("C.CALL == %v, expected %v", got, want) } // Issue 20125. if got, want := C.SIZE_OF_FOO, 1; got != want { t.Errorf("C.SIZE_OF_FOO == %v, expected %v", got, want) } }