// 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>

// Tests libgo.so to export the following functions.
//   int8_t DidInitRun();
//   int8_t DidMainRun();
//   int32_t FromPkg();
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;
  }
  // test.bash looks for "PASS" to ensure this program has reached the end. 
  printf("PASS\n");
  return 0;
}
