]> jfr.im git - solanum.git/blobdiff - tests/substitution1.c
tests: Check sendto_wallops_flags works with format strings
[solanum.git] / tests / substitution1.c
index 59c91c95e26903f5e0e71b78c61c6d814e7a6f31..343819e76cf6dde8cc3952f823d987d5b87c7abc 100644 (file)
@@ -31,7 +31,6 @@
 #define MSG "%s:%d (%s)", __FILE__, __LINE__, __FUNCTION__
 
 struct Client me;
-static char tmp[2048];
 static const char text[] =
 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba"
 "ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
@@ -271,6 +270,16 @@ static void too_long_variable3c(void) {
        is_string(tmp2, substitution_parse("${text200}${text400}${text100}", &varlist2), MSG);
 }
 
+static void long_variable_name1(void) {
+       char input[2048];
+
+       strcpy(input, "${");
+       strcat(input, MKTEXT(1000));
+       strcat(input, "}");
+
+       is_string("test", substitution_parse(input, &varlist2), MSG);
+}
+
 int main(int argc, char *argv[])
 {
        memset(&me, 0, sizeof(me));
@@ -304,6 +313,11 @@ int main(int argc, char *argv[])
        substitution_append_var(&varlist2, "text514", MKTEXT(514));
        substitution_append_var(&varlist2, "text600", MKTEXT(600));
 
+       char temp[2048];
+       strcpy(temp, MKTEXT(1000));
+       temp[BUFSIZE - 1] = '\0';
+       substitution_append_var(&varlist2, temp, "test");
+
        plan_lazy();
 
        valid_variable1();
@@ -337,5 +351,10 @@ int main(int argc, char *argv[])
        too_long_variable3b();
        too_long_variable3c();
 
+       long_variable_name1();
+
+       substitution_free(&varlist);
+       substitution_free(&varlist2);
+
        return 0;
 }