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 } 43