Thread Test::LongString - Probleme mit Umbrüchen im Output (3 answers)
Opened by roli at 2010-08-25 13:01

roli
 2010-08-25 13:01
#140924 #140924
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi,

ich habe ein Problem mit dem Test eines Perl Programms unter Windows, das ich auf Linux geschrieben habe.
In dem Test selber wird verglichen ob der Output des Programms dem Erwarteten entspricht. Das Ergebnis das ich unter Windows erhalte ist:
Code: (dl )
1
2
3
4
5
6
7
8
#   Failed test 'Ueberpruefe ob das Vergleichsergebnis dem erwarteten entspricht.
# >> C:\strawberry\perl\bin\perl.exe programm.pl" << wurde aufgerufen'
# at t\a.t line 42.
# got: "\x{0d}\x{0a}Usage:\x{0d}\x{0a}======\x{0d}\x{0a} Parameters:\x{0d}\x{0a} -e <File1> "...
# length: 2859
# expected: "\x{0a}Usage:\x{0a}======\x{0a} Parameters:\x{0a} -e <File1> "...
# length: 2761
# strings begin to differ at char 1


Bis auf die Umbrüche ist ja alles wie ich's erwarte.

Die Stelle in programm.pl die diesen Output erzeugt sieht wie folgt aus
Code: (dl )
1
2
3
4
sub usage {
print "\nUsage:\n";
print "======\n";
...


Der Test a.t wiederum sieht wie folgt aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
...
my $command = q|C:\strawberry\perl\bin\perl.exe programm.pl"|;

my $input;
my $pid = open3( $input, \*OUT, \*ERROR, $command );
waitpid( $pid, &WNOHANG );
my $rc = $? >> 8;;
close $input;
my $output = do { local $/; <OUT> };

is_string( $output, $expected, "Ueberpruefe ob das Vergleichsergebnis dem erwarteten entspricht.\n>> $command << wurde aufgerufen" );

BEGIN {

$expected = <<"HERE";

Usage:
======
...


Wie kann ich es anstellen, das der Test sowohl unter Linux als auch unter Windows zum selben Ergebnis, also OK, kommt?
Alle beteiligten Dateien selber sind mit dem selben Zeilenende gespeichert.
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2

View full thread Test::LongString - Probleme mit Umbrüchen im Output