test_env.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <stdio.h>
  2. #include "aFun.h"
  3. size_t getSize(void) {
  4. return sizeof(int *);
  5. }
  6. void initData(int **data) {
  7. *data = calloc(sizeof(int), 1);
  8. **data = 100;
  9. }
  10. void freeData(int **data) {
  11. printf("**data = %d\n", **data);
  12. free(*data);
  13. }
  14. int main() {
  15. aFunInit();
  16. af_Environment *env = makeEnvironment();
  17. {
  18. af_ObjectAPI *api = makeObjectAPI();
  19. DLC_SYMBOL(objectAPIFunc) getSize_ = MAKE_SYMBOL(getSize, objectAPIFunc);
  20. DLC_SYMBOL(objectAPIFunc) initData_ = MAKE_SYMBOL(initData, objectAPIFunc);
  21. DLC_SYMBOL(objectAPIFunc) freeData_ = MAKE_SYMBOL(freeData, objectAPIFunc);
  22. if (addAPI(getSize_, "obj_getDataSize", api) != 1)
  23. return 2;
  24. if (addAPI(initData_, "obj_initData", api) != 1)
  25. return 2;
  26. if (addAPI(freeData_, "obj_freeData", api) != 1)
  27. return 2;
  28. addVarToProtectVarSpace(makeVar("global", 3, 3,
  29. makeObject("global", true, api, true, NULL, NULL, env)),
  30. env);
  31. FREE_SYMBOL(getSize_);
  32. FREE_SYMBOL(initData_);
  33. FREE_SYMBOL(freeData_);
  34. }
  35. addVarToProtectVarSpace(makeVar("object", 3, 3,
  36. makeObject("object", true, makeObjectAPI(), true, NULL, NULL, env)),
  37. env);
  38. if (!enableEnvironment(env)) {
  39. fprintf(stderr, "Enable Error.\n");
  40. exit(EXIT_FAILURE);
  41. }
  42. freeEnvironment(env);
  43. return 0;
  44. }