Fix tests after https://codereview.scilab.org/#/c/13868/ 98/13898/1
Vincent COUVERT [Tue, 4 Mar 2014 15:30:29 +0000 (16:30 +0100)]
To test: test_run("m2sci", ["bug_1003", "bug_942"])

Change-Id: I8dabd1ed0109fbc44e560a8786f479704f777ff3

scilab/modules/m2sci/macros/mfile2sci.sci
scilab/modules/m2sci/tests/nonreg_tests/bug_1003.dia.ref
scilab/modules/m2sci/tests/nonreg_tests/bug_1003.tst

index 9935252..cade504 100644 (file)
@@ -208,6 +208,7 @@ function res=mfile2sci(fil,res_path,Recmode,only_double,verbose_mode,prettyprint
 
         txt($+1) = "endfunction"
         // Compilation
+        txt = [part(txt(1),kc:ksc-1);firstline;txt(2:$)]
         mputl(txt, TMPDIR+"/"+mname+".sci");
         exec(TMPDIR+"/"+mname+".sci", -1);
         funcprot(fprot);
index 280dfca..1ec9f43 100644 (file)
 // <-- Short Description -->
 //    Matlab fgets translation is wrong
 //
-//    The Matlab function fgets is close to mgetl but not 
+//    The Matlab function fgets is close to mgetl but not
 //    identical.
 //    fgets(fd) should be translated into mgetl(fd,1).
-//    The current CVS translates fgets(fd) into mgetl(fd) but 
-//    this is wrong since fgets(fd) in Matlab reads one line of 
-//    the file while mgetl(fd) in Scilab reads the full file (if 
+//    The current CVS translates fgets(fd) into mgetl(fd) but
+//    this is wrong since fgets(fd) in Matlab reads one line of
+//    the file while mgetl(fd) in Scilab reads the full file (if
 //    I understand the Matlab and Scilab docs correctly).
 //
-//    The solution I propose to correct this consists simply in 
+//    The solution I propose to correct this consists simply in
 //    adding:
 //      tree.rhs(2)=Cste(1)
 //    in the else part of sci_fgets.sci
 //
 //
-//    Example of wrong conversion: Try to convert the following 
+//    Example of wrong conversion: Try to convert the following
 //    file ct1.m:
 //
 //    function ct1()
 // ...
 MFILECONTENTS=["% Test with fgets result stored in a variable";
-                "fp = fopen(''testfile.txt'',''r'');";
-               "tempstr = '' '';";
-               "while ( tempstr ~= -1)";
-               "  tempstr = fgets(fp); % -1 if eof ";
-               "  disp(tempstr);";
-               "end";
-               "fclose(fp);"
-               "% Test with fgets result not-stored in a variable";
-               "fp = fopen(''testfile.txt'',''r'');";
-               "disp(fgets(fp)); % -1 if eof ";
-               "fclose(fp);"]
+"fp = fopen(''testfile.txt'',''r'');";
+"tempstr = '' '';";
+"while ( tempstr ~= -1)";
+"  tempstr = fgets(fp); % -1 if eof";
+"  disp(tempstr);";
+"end";
+"fclose(fp);"
+"% Test with fgets result not-stored in a variable";
+"fp = fopen(''testfile.txt'',''r'');";
+"disp(fgets(fp)); % -1 if eof";
+"fclose(fp);"]
  MFILECONTENTS  =
  
 !% Test with fgets result stored in a variable      !
@@ -103,12 +103,12 @@ SCIFILECONTENTSREF=["";
 "fp = mtlb_fopen(""testfile.txt"",""r"");";
 "tempstr = "" "";";
 "while tempstr~=(-1)";
-"  tempstr = mgetl(fp,1);  if isempty(tempstr) then tempstr = -1;end;  // -1 if eof ";
+"  tempstr = mgetl(fp,1);  if isempty(tempstr) then tempstr = -1;end;  // -1 if eof";
 "  disp(tempstr);";
 "end;";
 "mclose(fp);";
 "// Test with fgets result not-stored in a variable";
 "fp = mtlb_fopen(""testfile.txt"",""r"");";
-"%v0 = mgetl(fp,1);if isempty(%v0) then %v0 = -1;end;disp(%v0);// -1 if eof ";
+"%v0 = mgetl(fp,1);if isempty(%v0) then %v0 = -1;end;disp(%v0);// -1 if eof";
 "mclose(fp);"];
 if or(SCIFILECONTENTSREF<>SCIFILECONTENTS) then bugmes();quit;end
index f78fef7..8578f75 100644 (file)
 // <-- Short Description -->
 //    Matlab fgets translation is wrong
 //
-//    The Matlab function fgets is close to mgetl but not 
+//    The Matlab function fgets is close to mgetl but not
 //    identical.
 //    fgets(fd) should be translated into mgetl(fd,1).
-//    The current CVS translates fgets(fd) into mgetl(fd) but 
-//    this is wrong since fgets(fd) in Matlab reads one line of 
-//    the file while mgetl(fd) in Scilab reads the full file (if 
+//    The current CVS translates fgets(fd) into mgetl(fd) but
+//    this is wrong since fgets(fd) in Matlab reads one line of
+//    the file while mgetl(fd) in Scilab reads the full file (if
 //    I understand the Matlab and Scilab docs correctly).
 //
-//    The solution I propose to correct this consists simply in 
+//    The solution I propose to correct this consists simply in
 //    adding:
 //      tree.rhs(2)=Cste(1)
 //    in the else part of sci_fgets.sci
 //
 //
-//    Example of wrong conversion: Try to convert the following 
+//    Example of wrong conversion: Try to convert the following
 //    file ct1.m:
 //
 //    function ct1()
 // ...
 
 MFILECONTENTS=["% Test with fgets result stored in a variable";
-                "fp = fopen(''testfile.txt'',''r'');";
-               "tempstr = '' '';";
-               "while ( tempstr ~= -1)";
-               "  tempstr = fgets(fp); % -1 if eof ";
-               "  disp(tempstr);";
-               "end";
-               "fclose(fp);"
-               "% Test with fgets result not-stored in a variable";
-               "fp = fopen(''testfile.txt'',''r'');";
-               "disp(fgets(fp)); % -1 if eof ";
-               "fclose(fp);"]
+"fp = fopen(''testfile.txt'',''r'');";
+"tempstr = '' '';";
+"while ( tempstr ~= -1)";
+"  tempstr = fgets(fp); % -1 if eof";
+"  disp(tempstr);";
+"end";
+"fclose(fp);"
+"% Test with fgets result not-stored in a variable";
+"fp = fopen(''testfile.txt'',''r'');";
+"disp(fgets(fp)); % -1 if eof";
+"fclose(fp);"]
 
 MFILE=TMPDIR+"/bug1003.m";
 SCIFILE=TMPDIR+"/bug1003.sci";
@@ -68,13 +68,13 @@ SCIFILECONTENTSREF=["";
 "fp = mtlb_fopen(""testfile.txt"",""r"");";
 "tempstr = "" "";";
 "while tempstr~=(-1)";
-"  tempstr = mgetl(fp,1);  if isempty(tempstr) then tempstr = -1;end;  // -1 if eof ";
+"  tempstr = mgetl(fp,1);  if isempty(tempstr) then tempstr = -1;end;  // -1 if eof";
 "  disp(tempstr);";
 "end;";
 "mclose(fp);";
 "// Test with fgets result not-stored in a variable";
 "fp = mtlb_fopen(""testfile.txt"",""r"");";
-"%v0 = mgetl(fp,1);if isempty(%v0) then %v0 = -1;end;disp(%v0);// -1 if eof ";
+"%v0 = mgetl(fp,1);if isempty(%v0) then %v0 = -1;end;disp(%v0);// -1 if eof";
 "mclose(fp);"];
 
 if or(SCIFILECONTENTSREF<>SCIFILECONTENTS) then pause,end