packtool-test.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #include "test_common.h"
  2. TEST_START
  3. #include "PikaCompiler.h"
  4. // TEST(packtool, unpack) {
  5. // PIKA_RES res = pikafs_unpack_files("test/out/packout/a0424.pack",
  6. // "test/out/unpackout/");
  7. // EXPECT_EQ(res, PIKA_RES_OK);
  8. // }
  9. TEST(packtool, packfiles) {
  10. PikaMaker* maker = New_PikaMaker();
  11. PIKA_RES ret = PIKA_RES_OK;
  12. pikaMaker_linkRawWithPath(maker, "test/assets/test.txt", "/txt-file");
  13. pikaMaker_linkRawWithPath(maker, "test/assets/test.jpg", "/bmp-file");
  14. // create "./test/out/packout" path if not exist
  15. ret = pikaMaker_linkCompiledModulesFullPath(
  16. maker, "./test/out/packout/a0424.pack");
  17. pikaMaker_deinit(maker);
  18. EXPECT_EQ(ret, PIKA_RES_OK);
  19. }
  20. TEST(packtool, packfiles_txt) {
  21. PikaMaker* maker = New_PikaMaker();
  22. PIKA_RES ret = PIKA_RES_OK;
  23. pikaMaker_linkRawWithPath(maker, "test/assets/test.txt", "txt-file");
  24. pikaMaker_linkRawWithPath(maker, "test/assets/widget_config.ini",
  25. "/widget_config.ini");
  26. // create "./test/out/packout" path if not exist
  27. ret = pikaMaker_linkCompiledModulesFullPath(maker,
  28. "./test/out/packout/ptxt.pack");
  29. pikaMaker_deinit(maker);
  30. EXPECT_EQ(ret, PIKA_RES_OK);
  31. pikafs_FILE* pack_file =
  32. pikafs_fopen_pack("test/out/packout/ptxt.pack", "widget_config.ini");
  33. EXPECT_TRUE(pack_file != NULL);
  34. while (1) {
  35. char buf = 0;
  36. size_t n = pikafs_fread(&buf, 1, 1, pack_file);
  37. if (n <= 0) {
  38. break;
  39. }
  40. /* the txt file should not contain '\0' */
  41. EXPECT_NE(buf, 0);
  42. }
  43. pikafs_fclose(pack_file);
  44. EXPECT_EQ(pikaMemNow(), 0);
  45. }
  46. TEST(packtool, packread_) {
  47. size_t n = 0;
  48. // Arg* fileArg = NULL;
  49. pikafs_FILE* pack_file =
  50. pikafs_fopen_pack("test/out/packout/a0424.pack", "test.txt");
  51. if (NULL == pack_file) {
  52. pika_platform_printf("open file: %s error\r\n",
  53. "test/out/packout/a0424.pack");
  54. }
  55. FILE* file =
  56. pika_platform_fopen("test/out/unpackout/file3_test.txt", "wb+");
  57. if (NULL == file) {
  58. pika_platform_printf("open file: %s error\r\n",
  59. "test/out/unpackout/file3_test.txt");
  60. }
  61. n = pika_platform_fwrite(pack_file->addr, pack_file->size, 1, file);
  62. arg_deinit(pack_file->farg);
  63. pikaFree(pack_file, sizeof(pikafs_FILE));
  64. pika_platform_fclose(file);
  65. pack_file = NULL;
  66. EXPECT_NE(n, 0);
  67. }
  68. TEST(packtool, packreadErr) {
  69. pikafs_FILE* pack_file =
  70. pikafs_fopen_pack("test/out/packout/0425.pack", "file3.txt");
  71. if (NULL == pack_file) {
  72. pika_platform_printf("open file: %s error\r\n",
  73. "test/out/packout/a0424.pack");
  74. }
  75. EXPECT_TRUE(!pack_file);
  76. }
  77. TEST(packtool, packread) {
  78. size_t n = 0;
  79. // Arg* fileArg = NULL;
  80. pikafs_FILE* pack_file =
  81. pikafs_fopen_pack("test/out/packout/a0424.pack", "test.txt");
  82. if (NULL == pack_file) {
  83. pika_platform_printf("open file: %s error\r\n",
  84. "test/out/packout/a0424.pack");
  85. }
  86. char buffer[1024] = {0};
  87. n = pikafs_fread(buffer, 1, 1024, pack_file);
  88. pikafs_fclose(pack_file);
  89. pack_file = NULL;
  90. EXPECT_NE(n, 0);
  91. EXPECT_EQ(pikaMemNow(), 0);
  92. }
  93. TEST_END