(root)/
gcc-13.2.0/
libgo/
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  }