diff src/eval.c @ 13796:87012d2b17b5 v8.0.1770

patch 8.0.1770: assert functions don't return anything commit https://github.com/vim/vim/commit/65a5464985f980d2bbbf4e14d39d416dce065ec7 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 28 16:56:53 2018 +0200 patch 8.0.1770: assert functions don't return anything Problem: Assert functions don't return anything. Solution: Return non-zero when the assertion fails.
author Christian Brabandt <cb@256bit.org>
date Sat, 28 Apr 2018 17:00:06 +0200
parents e76499e85744
children eadecbe4e390
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -8815,7 +8815,7 @@ assert_error(garray_T *gap)
     list_append_string(vimvars[VV_ERRORS].vv_list, gap->ga_data, gap->ga_len);
 }
 
-    void
+    int
 assert_equal_common(typval_T *argvars, assert_type_T atype)
 {
     garray_T	ga;
@@ -8828,10 +8828,12 @@ assert_equal_common(typval_T *argvars, a
 								       atype);
 	assert_error(&ga);
 	ga_clear(&ga);
-    }
-}
-
-    void
+	return 1;
+    }
+    return 0;
+}
+
+    int
 assert_equalfile(typval_T *argvars)
 {
     char_u	buf1[NUMBUFLEN];
@@ -8843,7 +8845,7 @@ assert_equalfile(typval_T *argvars)
     FILE	*fd2;
 
     if (fname1 == NULL || fname2 == NULL)
-	return;
+	return 0;
 
     IObuff[0] = NUL;
     fd1 = mch_fopen((char *)fname1, READBIN);
@@ -8897,10 +8899,12 @@ assert_equalfile(typval_T *argvars)
 	ga_concat(&ga, IObuff);
 	assert_error(&ga);
 	ga_clear(&ga);
-    }
-}
-
-    void
+	return 1;
+    }
+    return 0;
+}
+
+    int
 assert_match_common(typval_T *argvars, assert_type_T atype)
 {
     garray_T	ga;
@@ -8918,10 +8922,12 @@ assert_match_common(typval_T *argvars, a
 									atype);
 	assert_error(&ga);
 	ga_clear(&ga);
-    }
-}
-
-    void
+	return 1;
+    }
+    return 0;
+}
+
+    int
 assert_inrange(typval_T *argvars)
 {
     garray_T	ga;
@@ -8934,7 +8940,7 @@ assert_inrange(typval_T *argvars)
     char_u	numbuf[NUMBUFLEN];
 
     if (error)
-	return;
+	return 0;
     if (actual < lower || actual > upper)
     {
 	prepare_assert_error(&ga);
@@ -8951,13 +8957,16 @@ assert_inrange(typval_T *argvars)
 	}
 	assert_error(&ga);
 	ga_clear(&ga);
-    }
+	return 1;
+    }
+    return 0;
 }
 
 /*
  * Common for assert_true() and assert_false().
- */
-    void
+ * Return non-zero for failure.
+ */
+    int
 assert_bool(typval_T *argvars, int isTrue)
 {
     int		error = FALSE;
@@ -8965,7 +8974,7 @@ assert_bool(typval_T *argvars, int isTru
 
     if (argvars[0].v_type == VAR_SPECIAL
 	    && argvars[0].vval.v_number == (isTrue ? VVAL_TRUE : VVAL_FALSE))
-	return;
+	return 0;
     if (argvars[0].v_type != VAR_NUMBER
 	    || (get_tv_number_chk(&argvars[0], &error) == 0) == isTrue
 	    || error)
@@ -8976,10 +8985,12 @@ assert_bool(typval_T *argvars, int isTru
 		NULL, &argvars[0], ASSERT_OTHER);
 	assert_error(&ga);
 	ga_clear(&ga);
-    }
-}
-
-    void
+	return 1;
+    }
+    return 0;
+}
+
+    int
 assert_report(typval_T *argvars)
 {
     garray_T	ga;
@@ -8988,9 +8999,10 @@ assert_report(typval_T *argvars)
     ga_concat(&ga, get_tv_string(&argvars[0]));
     assert_error(&ga);
     ga_clear(&ga);
-}
-
-    void
+    return 1;
+}
+
+    int
 assert_exception(typval_T *argvars)
 {
     garray_T	ga;
@@ -9002,6 +9014,7 @@ assert_exception(typval_T *argvars)
 	ga_concat(&ga, (char_u *)"v:exception is not set");
 	assert_error(&ga);
 	ga_clear(&ga);
+	return 1;
     }
     else if (error != NULL
 	&& strstr((char *)vimvars[VV_EXCEPTION].vv_str, (char *)error) == NULL)
@@ -9011,14 +9024,17 @@ assert_exception(typval_T *argvars)
 				  &vimvars[VV_EXCEPTION].vv_tv, ASSERT_OTHER);
 	assert_error(&ga);
 	ga_clear(&ga);
-    }
-}
-
-    void
+	return 1;
+    }
+    return 0;
+}
+
+    int
 assert_beeps(typval_T *argvars)
 {
     char_u	*cmd = get_tv_string_chk(&argvars[0]);
     garray_T	ga;
+    int		ret = 0;
 
     called_vim_beep = FALSE;
     suppress_errthrow = TRUE;
@@ -9031,17 +9047,20 @@ assert_beeps(typval_T *argvars)
 	ga_concat(&ga, cmd);
 	assert_error(&ga);
 	ga_clear(&ga);
+	ret = 1;
     }
 
     suppress_errthrow = FALSE;
     emsg_on_display = FALSE;
-}
-
-    void
+    return ret;
+}
+
+    int
 assert_fails(typval_T *argvars)
 {
     char_u	*cmd = get_tv_string_chk(&argvars[0]);
     garray_T	ga;
+    int		ret = 0;
 
     called_emsg = FALSE;
     suppress_errthrow = TRUE;
@@ -9054,6 +9073,7 @@ assert_fails(typval_T *argvars)
 	ga_concat(&ga, cmd);
 	assert_error(&ga);
 	ga_clear(&ga);
+	ret = 1;
     }
     else if (argvars[1].v_type != VAR_UNKNOWN)
     {
@@ -9068,6 +9088,7 @@ assert_fails(typval_T *argvars)
 				     &vimvars[VV_ERRMSG].vv_tv, ASSERT_OTHER);
 	    assert_error(&ga);
 	    ga_clear(&ga);
+	ret = 1;
 	}
     }
 
@@ -9076,6 +9097,7 @@ assert_fails(typval_T *argvars)
     emsg_silent = FALSE;
     emsg_on_display = FALSE;
     set_vim_var_string(VV_ERRMSG, NULL, 0);
+    return ret;
 }
 
 /*