diff --git a/src/testing.c b/src/testing.c
index 1037c44..782d35c 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -907,12 +907,12 @@
 	    || argvars[1].v_type != VAR_NUMBER
 	    || argvars[1].vval.v_number < 0
 	    || argvars[2].v_type != VAR_NUMBER)
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
     else
     {
 	alloc_fail_id = argvars[0].vval.v_number;
 	if (alloc_fail_id >= aid_last)
-	    emsg(_(e_invarg));
+	    emsg(_(e_invalid_argument));
 	alloc_fail_countdown = argvars[1].vval.v_number;
 	alloc_fail_repeat = argvars[2].vval.v_number;
 	did_outofmem_msg = FALSE;
@@ -967,7 +967,7 @@
 	return;
 
     if (argvars[0].v_type != VAR_STRING)
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
     else
     {
 	char_u *name = tv_get_string(&argvars[0]);
@@ -975,7 +975,7 @@
 	if (STRCMP(name, (char_u *)"need_fileinfo") == 0)
 	    rettv->vval.v_number = need_fileinfo;
 	else
-	    semsg(_(e_invarg2), name);
+	    semsg(_(e_invalid_argument_str), name);
     }
 }
 
@@ -991,12 +991,12 @@
 	return;
 
     if (argvars[0].v_type != VAR_STRING)
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
     else
     {
 	name = tv_get_string(&argvars[0]);
 	if (reset_option_was_set(name) == FAIL)
-	    semsg(_(e_invarg2), name);
+	    semsg(_(e_invalid_argument_str), name);
     }
 }
 
@@ -1017,7 +1017,7 @@
 
     if (argvars[0].v_type != VAR_STRING
 	    || (argvars[1].v_type) != VAR_NUMBER)
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
     else
     {
 	name = tv_get_string(&argvars[0]);
@@ -1072,7 +1072,7 @@
 	    }
 	}
 	else
-	    semsg(_(e_invarg2), name);
+	    semsg(_(e_invalid_argument_str), name);
     }
 }
 
@@ -1171,7 +1171,7 @@
 	return;
 
     if (argvars[0].v_type != VAR_STRING)
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
     else
 	ignore_error_for_testing(tv_get_string(&argvars[0]));
 }
@@ -1264,7 +1264,7 @@
 	    || (argvars[1].v_type) != VAR_NUMBER
 	    || (argvars[2].v_type) != VAR_NUMBER)
     {
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
 	return;
     }
     which = tv_get_string(&argvars[0]);
@@ -1279,7 +1279,7 @@
 	sb = &gui.bottom_sbar;
     if (sb == NULL)
     {
-	semsg(_(e_invarg2), which);
+	semsg(_(e_invalid_argument_str), which);
 	return;
     }
     gui_drag_scrollbar(sb, value, dragging);
@@ -1300,7 +1300,7 @@
 
     if (argvars[0].v_type != VAR_NUMBER || (argvars[1].v_type) != VAR_NUMBER)
     {
-	emsg(_(e_invarg));
+	emsg(_(e_invalid_argument));
 	return;
     }
 
