| // Copyright 2015 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. |
| |
| #include <stdint.h> |
| #include <stdio.h> |
| |
| #include "p.h" |
| #include "libgo.h" |
| |
| // Tests libgo.so to export the following functions. |
| // int8_t DidInitRun(); |
| // int8_t DidMainRun(); |
| // int32_t FromPkg(); |
| // uint32_t Divu(uint32_t, uint32_t); |
| int main(void) { |
| int8_t ran_init = DidInitRun(); |
| if (!ran_init) { |
| fprintf(stderr, "ERROR: DidInitRun returned unexpected results: %d\n", |
| ran_init); |
| return 1; |
| } |
| int8_t ran_main = DidMainRun(); |
| if (ran_main) { |
| fprintf(stderr, "ERROR: DidMainRun returned unexpected results: %d\n", |
| ran_main); |
| return 1; |
| } |
| int32_t from_pkg = FromPkg(); |
| if (from_pkg != 1024) { |
| fprintf(stderr, "ERROR: FromPkg=%d, want %d\n", from_pkg, 1024); |
| return 1; |
| } |
| uint32_t divu = Divu(2264, 31); |
| if (divu != 73) { |
| fprintf(stderr, "ERROR: Divu(2264, 31)=%d, want %d\n", divu, 73); |
| return 1; |
| } |
| // test.bash looks for "PASS" to ensure this program has reached the end. |
| printf("PASS\n"); |
| return 0; |
| } |