aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/list2lists/negativelength.pd50
-rw-r--r--tests/runtests.txt2
2 files changed, 52 insertions, 0 deletions
diff --git a/tests/list2lists/negativelength.pd b/tests/list2lists/negativelength.pd
new file mode 100644
index 0000000..8b249ad
--- /dev/null
+++ b/tests/list2lists/negativelength.pd
@@ -0,0 +1,50 @@
+#N canvas 57 57 608 610 10;
+#X obj 86 213 t b b;
+#X obj 86 190 inlet run_test;
+#X obj 86 488 outlet;
+#X msg 86 420 0;
+#X obj 86 455 t f;
+#X obj 134 327 list2lists;
+#X msg 134 276 1 2 3 4;
+#X text 73 33 currently [list2lists] does not check for negative list
+lengths and allows them just fine \, which can easily lead to segfaults
+(e.g. with a list-length of "-8000");
+#X text 76 90 i don't knw exactly how this should be handled;
+#X text 125 114 i guess it would be best to just issue an error and
+clamp the list-length to 0;
+#X msg 201 305 list 2 -2 2;
+#X text 223 333 the wrong output will be "1 2 \, bang \, 1 2";
+#X msg 147 226 bang;
+#X obj 134 351 route bang;
+#X obj 134 252 t b b b;
+#X obj 123 406 repack 100;
+#X msg 134 376 symbol BANG;
+#X obj 123 429 unpack 0 0 s 0 0;
+#X obj 203 476 +;
+#X obj 206 500 != 0;
+#X floatatom 128 511 5 0 0 0 - - -;
+#X obj 203 454 == 3;
+#X obj 243 450 == 4;
+#X connect 0 0 3 0;
+#X connect 0 1 14 0;
+#X connect 1 0 0 0;
+#X connect 3 0 4 0;
+#X connect 4 0 2 0;
+#X connect 4 0 20 0;
+#X connect 5 0 13 0;
+#X connect 6 0 5 0;
+#X connect 10 0 5 1;
+#X connect 12 0 14 0;
+#X connect 13 0 16 0;
+#X connect 13 1 15 0;
+#X connect 14 0 15 0;
+#X connect 14 1 6 0;
+#X connect 14 2 10 0;
+#X connect 15 0 17 0;
+#X connect 16 0 15 0;
+#X connect 17 3 21 0;
+#X connect 17 4 22 0;
+#X connect 18 0 19 0;
+#X connect 19 0 4 0;
+#X connect 21 0 18 0;
+#X connect 22 0 18 1;
diff --git a/tests/runtests.txt b/tests/runtests.txt
index 11cc358..f461f03 100644
--- a/tests/runtests.txt
+++ b/tests/runtests.txt
@@ -70,12 +70,14 @@ help-msg/zexy_;
help-msg/z~;
l2s/argument;
l2s/delimiter;
+list2lists/negativelength;
lister/inline2;
lister/inline;
msgfile/empty_at_end;
msgfile/emptyreplace;
msgfile/loadingCR;
msgfile/loading;
+msgfile/prev_from_end;
msgfile/reentrant;
repeat/noargs;
s2l/numsymbols;