]> Cypherpunks.ru repositories - gostls13.git/blob - misc/cgo/testcshared/testdata/main0.c
runtime: remove crash_cgo_test CgoRaceSignal timeout
[gostls13.git] / misc / cgo / testcshared / testdata / main0.c
1 // Copyright 2015 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 #include <stdint.h>
6 #include <stdio.h>
7
8 #include "p.h"
9 #include "libgo.h"
10
11 // Tests libgo.so to export the following functions.
12 //   int8_t DidInitRun();
13 //   int8_t DidMainRun();
14 //   int32_t FromPkg();
15 //   uint32_t Divu(uint32_t, uint32_t);
16 int main(void) {
17   int8_t ran_init = DidInitRun();
18   if (!ran_init) {
19     fprintf(stderr, "ERROR: DidInitRun returned unexpected results: %d\n",
20             ran_init);
21     return 1;
22   }
23   int8_t ran_main = DidMainRun();
24   if (ran_main) {
25     fprintf(stderr, "ERROR: DidMainRun returned unexpected results: %d\n",
26             ran_main);
27     return 1;
28   }
29   int32_t from_pkg = FromPkg();
30   if (from_pkg != 1024) {
31     fprintf(stderr, "ERROR: FromPkg=%d, want %d\n", from_pkg, 1024);
32     return 1;
33   }
34   uint32_t divu = Divu(2264, 31);
35   if (divu != 73) {
36     fprintf(stderr, "ERROR: Divu(2264, 31)=%d, want %d\n", divu, 73);
37     return 1;
38   }
39   // test.bash looks for "PASS" to ensure this program has reached the end. 
40   printf("PASS\n");
41   return 0;
42 }