jerry gay wrote on Mon, Aug 20, 2007 at 07:17:07AM PDT: > ... > > perhaps it's not explicit enough in the description, but > F<sprintf_tests> is copied directly from perl's repository. modifying > this file is not recommended, as future synchronizations from a newer > perl will likely overwrite previous parrot customizations. instead, i > suggest t/op/sprintf.t be modified to handle multiple files, and a new > file (perhaps F<sprintf_parrot>) be created including the new test > data. Thanks, Jerry. I think it's explicit about it being copied, but I didn't think of it being synchronized again. I have attached a new patch which follows your suggestion and creates sprintf_parrot and adds it to the files that t/op/sprint.t uses. I have also updated the documentation. The patch must be applied after the rt38992-1.patch.
diffstat: t/op/sprintf.t | 18 +++++++++++++----- t/op/sprintf_parrot | 20 ++++++++++++++++++++ t/op/sprintf_tests | 19 ------------------- 3 files changed, 33 insertions(+), 24 deletions(-) - David -- "/All/ Christians -- 'that they all may be one' -- are to be one. It is obvious that there can be no organizational unity which could include all born-again Christians everywhere in the world. It is just not possible." -- Francis Schaeffer, The Mark of a Christian
diff --git a/t/op/sprintf.t b/t/op/sprintf.t index f1e1878..62912dd 100644 --- a/t/op/sprintf.t +++ b/t/op/sprintf.t @@ -8,17 +8,24 @@ t/op/sprintf.t -- sprintf tests =head1 DESCRIPTION -These tests are based on sprintf tests from perl 5.9.4. - Tests sprintf, excluding handling of 64-bit integers or long doubles (if supported), of machine-specific short and long integers, machine-specific floating point exceptions (infinity, not-a-number ...), of the effects of locale, and of features specific to multi-byte characters (under the utf8 pragma and such). -Individual tests are stored in the C<sprintf_tests> file in the same -directory; There is one test per line. In each test, there are three -required fields: +Individual tests are stored in either C<sprintf_tests> or C<sprintf_parrot> in +the same directory. The tests in the C<sprintf_tests> file are based on +sprintf tests from perl 5.9.4. Only change that file to synchronize with perl +5.x.x releases. The tests in the C<sprintf_parrot> file are parrot-specific +sprintf tests, and can be changed. Simply put, change C<sprintf_parrot>, not +C<sprintf_tests>. + +=head2 Test file structure + +As stated above, individual tests are stored in either C<sprintf_tests> or +C<sprintf_parrot> in the same directory; there is one test per line. In each +test, there are three required fields: =over 4 @@ -88,6 +95,7 @@ tag 'all' is allowed for todo tests that should fail on any system # populate the list of test files push test_files, 'sprintf_tests' + push test_files, 'sprintf_parrot' .local pmc file_iterator # iterate over list of files.. diff --git a/t/op/sprintf_parrot b/t/op/sprintf_parrot new file mode 100644 index 0000000..cd96ff4 --- /dev/null +++ b/t/op/sprintf_parrot @@ -0,0 +1,20 @@ +Hello, %s\n Parrot! Hello, Parrot!\n string substitution w/chars before +Hash[0x%x]\n 256 Hash[0x100]\n hex format good +Hash[0x%lx]\n 256 Hash[0x100]\n long-hex format +Hello, %.2s!\n Parrot Hello, Pa!\n truncated string sub w/chars before +Hello, %Ss Hello, Pa!\n Hello, Hello, Pa!\n +1 == %Pd\n 1 1 == 1\n dec subst +-255 == %vd\n -255 -255 == -255\n signed (negative) dec subst ++123 == %+vd\n 123 +123 == +123\n signed dec subst +256 == %vu\n 256 256 == 256\n unsigned subst +1 == %+vu\n 1 1 == 1\n unsigned subst 2 +001 == %0.3u\n 1 001 == 001\n formatted unsigned subst +001 == %+0.3u\n 1 001 == 001\n formatted unsigned subst 2 +0.500000 == %f\n 0.5 0.500000 == 0.500000\n default float subst +0.500 == %5.3f\n 0.5 0.500 == 0.500\n formatted float subst +0.001 == %g\n 0.001 0.001 == 0.001\n double subst +1e+06 == %g\n 1.0e6 1e+06 == 1e+06\n double subst +0.5 == %3.3g\n 0.5 0.5 == 0.5\n formatted double subst +%% == %%\n 0 % == %\n no subst +That's all, %s\n folks! That's all, folks!\n + diff --git a/t/op/sprintf_tests b/t/op/sprintf_tests index 0baf56c..322fcec 100644 --- a/t/op/sprintf_tests +++ b/t/op/sprintf_tests @@ -307,24 +307,5 @@ %#x 0 0 %2147483647$v2d '' %*2147483647$v2d '' UNINIT -Hello, %s\n Parrot! Hello, Parrot!\n string substitution w/chars before -Hash[0x%x]\n 256 Hash[0x100]\n hex format good -Hash[0x%lx]\n 256 Hash[0x100]\n long-hex format -Hello, %.2s!\n Parrot Hello, Pa!\n truncated string sub w/chars before -Hello, %Ss Hello, Pa!\n Hello, Hello, Pa!\n -1 == %Pd\n 1 1 == 1\n dec subst --255 == %vd\n -255 -255 == -255\n signed (negative) dec subst -+123 == %+vd\n 123 +123 == +123\n signed dec subst -256 == %vu\n 256 256 == 256\n unsigned subst -1 == %+vu\n 1 1 == 1\n unsigned subst 2 -001 == %0.3u\n 1 001 == 001\n formatted unsigned subst -001 == %+0.3u\n 1 001 == 001\n formatted unsigned subst 2 -0.500000 == %f\n 0.5 0.500000 == 0.500000\n default float subst -0.500 == %5.3f\n 0.5 0.500 == 0.500\n formatted float subst -0.001 == %g\n 0.001 0.001 == 0.001\n double subst -1e+06 == %g\n 1.0e6 1e+06 == 1e+06\n double subst -0.5 == %3.3g\n 0.5 0.5 == 0.5\n formatted double subst -%% == %%\n 0 % == %\n no subst -That's all, %s\n folks! That's all, folks!\n # vim: sw=4 et