Branch: Tag:

2022-06-28

2022-06-28 14:10:51 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Testsuite [sprintf]: Robuster test of derived types.

Use equal() to compare types.

844:    [[ (0xffffffff == -1)?-1:0x7fff ]]);      dnl Check the derived return type of sprintf(). - test_any([[return sprintf("%O", typeof(sprintf("%1H", "foo"))); ]], -  "string(8bit)"); - test_any([[return sprintf("%O", typeof(sprintf("foo"))); ]], -  "string(102..111)"); - test_any([[return sprintf("%O", typeof(sprintf("foo%c", 17))); ]], -  "string(17 | 102..111)"); - test_any([[return sprintf("%O", typeof(sprintf("%2c\n", 'a'))); ]], -  "string(8bit)"); + test_equal([[ typeof(sprintf("%1H", "foo")); ]], +  [[ typeof([string(8bit)](mixed)""); ]]); + test_equal([[ typeof(sprintf("foo")); ]], +  [[ typeof([string(102..111)](mixed)""); ]]); + test_equal([[ typeof(sprintf("foo%c", 17)); ]], +  [[ typeof([string(17 | 102..111)](mixed)""); ]]); + test_equal([[ typeof(sprintf("%2c\n", 'a')); ]], +  [[ typeof([string(8bit)](mixed)""); ]]);   dnl Note the following tests the return type of int2char(). - test_any([[return sprintf("%O", typeof(sprintf("%c", 1023))); ]], -  "string(1023)"); - test_any([[return sprintf("%O", typeof(sprintf("%c\n", 1023))); ]], -  "string(10 | 1023)"); + test_equal([[ typeof(sprintf("%c", 1023)); ]], +  [[ typeof([string(1023)](mixed)""); ]]); + test_equal([[ typeof(sprintf("%c\n", 1023)); ]], +  [[ typeof([string(10 | 1023)](mixed)""); ]]);   dnl The following is due to (string & sprintf_result) == sprintf_result. - test_any([[return sprintf("%O", typeof(sprintf("%c\n", Stdio))); ]], -  sprintf("%O", sprintf_result)); - test_any([[return sprintf("%O", typeof(sprintf("%4[1]c", 17))); ]], -  "string(8bit)"); - test_any([[return sprintf("%O", typeof(sprintf("%[1]n", 17))); ]], -  "string(zero)"); + test_equal([[ typeof(sprintf("%c\n", Stdio)); ]], +  [[ sprintf_result; ]]); + test_equal([[ typeof(sprintf("%4[1]c", 17)); ]], +  [[ typeof([string(8bit)](mixed)"") ]]); + test_equal([[ typeof(sprintf("%[1]n", 17)); ]], +  [[ typeof([string(zero)](mixed)"") ]]);    - test_any([[return sprintf("%O", typeof(aggregate("foo")));]], "array(string(3: 102..111))"); + test_equal([[ typeof(aggregate("foo"));]], +  [[ typeof([array(string(3: 102..111))](mixed)({})) ]]);   test_any([[int a; return sprintf("%O", typeof(aggregate(a)));]], "array(int)");   test_any([[int|string a;    string s = sprintf("%O", typeof(aggregate(a)));