Browse Source

update kernal, fix CI

lyon 3 years ago
parent
commit
e89c585f46
5 changed files with 17 additions and 4 deletions
  1. 5 1
      package/PikaStdLib/PikaStdData_String.c
  2. 1 1
      src/PikaParser.c
  3. 6 2
      src/PikaVM.c
  4. 2 0
      test/VM-test.cpp
  5. 3 0
      test/requests-test.cpp

+ 5 - 1
package/PikaStdLib/PikaStdData_String.c

@@ -86,8 +86,12 @@ char* string_slice(Args* outBuffs, char* str, int start, int end) {
     if (start < 0) {
         start += string_len(str);
     }
+    /* magic code, to the end */
+    if (end == -99999) {
+        end = string_len(str);
+    }
     if (end < 0) {
-        end += string_len(str) + 1;
+        end += string_len(str);
     }
     for (int i = start; i < end; i++) {
         char char_buff[5] = {0};

+ 1 - 1
src/PikaParser.c

@@ -1506,7 +1506,7 @@ static void _AST_parse_slice(AST* ast, Args* buffs, char* stmt) {
         if (index == 0 && strEqu(slice_str, "")) {
             AST_parseSubStmt(ast, "0");
         } else if (index == 1 && strEqu(slice_str, "")) {
-            AST_parseSubStmt(ast, "-1");
+            AST_parseSubStmt(ast, "-99999");
         } else {
             AST_parseSubStmt(ast, slice_str);
         }

+ 6 - 2
src/PikaVM.c

@@ -478,8 +478,12 @@ Arg* _vm_slice(VMState* vm,
         if (start_i < 0) {
             start_i += len;
         }
+        /* magit code, to the end */
+        if (end_i == -99999) {
+            end_i = len;
+        }
         if (end_i < 0) {
-            end_i += len + 1;
+            end_i += len;
         }
         Arg* sliced_arg = arg_newBytes(NULL, 0);
         for (int i = start_i; i < end_i; i++) {
@@ -930,7 +934,7 @@ static void _kw_push(PikaDict** kw_dict_p,
     char kw_keys_index_buff[11] = {0};
     char* kw_keys_index = fast_itoa(kw_keys_index_buff, i);
     pikaDict_setArg(*kw_keys_p,
-                arg_setInt(NULL, kw_keys_index, arg_getNameHash(call_arg)));
+                    arg_setInt(NULL, kw_keys_index, arg_getNameHash(call_arg)));
 }
 
 static int VMState_loadArgsFromMethodArg(VMState* vm,

+ 2 - 0
test/VM-test.cpp

@@ -2267,6 +2267,7 @@ TEST(VM, bc_fn_file_cb2) {
     EXPECT_EQ(pikaMemNow(), 0);
 }
 
+#if !PIKA_NANO_ENABLE
 TEST(vm, slice_str_end) {
     /* init */
     pikaMemInfo.heapUsedMax = 0;
@@ -2281,5 +2282,6 @@ TEST(vm, slice_str_end) {
     obj_deinit(pikaMain);
     EXPECT_EQ(pikaMemNow(), 0);
 }
+#endif
 
 TEST_END

+ 3 - 0
test/requests-test.cpp

@@ -187,6 +187,8 @@ int webclient_get_test(int argc, char** argv) {
 }
 }
 
+#if !PIKA_NANO_ENABLE
+
 TEST(requests, webclient_get) {
     char* argv1[] = {"test", "http://www.rt-thread.com/service/rt-thread.txt"};
     EXPECT_EQ(webclient_get_test(2, argv1), 0);
@@ -227,3 +229,4 @@ TEST(requests, append_params_to_url) {
     obj_deinit(pikaMain);
     EXPECT_EQ(pikaMemNow(), 0);
 }
+#endif