예제 #1
0
    static int Main()
    {
        Plan(4);
        var paths = new string[] { "t\\12many.cs.notcs", "t\\12few.cs.notcs" };
        var sw    = new StringWriter();

        sw.NewLine     = "\r\n";
        TAPApp.Out     = sw;
        TAPApp.Subject = "u";
        try {
            TAPRunner r = new TAPRunner();
            r.CompileAndRun(paths.Select(x => new ScriptPath(TAPApp.FixPathSep(x), null)));
            var cs = TAPParser.Total;
            Is(cs.NPlanned, 2);
            Is(cs.NOk, 2);
            Is(cs.Mismatch, true);
            r.ShowTotals();
            Like(sw.ToString(), @"did not match number of tests\.
.*planned: 2 run: 2\b");
        } catch (Exception) {
            Dump("mismatch sw", sw);
            throw;
        }
        return(0);
    }
예제 #2
0
 static Action MkMetatest(string expstr, string source)
 {
     source = TAPApp.FixPathSep(source);
     string[] expected = expstr.Split(new [] { "\r\n" }, StringSplitOptions.None).Select <string, string>(PreProc).Where(x => x != null).ToArray();
     NPlanned += expected.Length;
     return(() => {
         var sw = new StringWriter();
         TAPApp.Out = sw;
         TAPApp.Subject = "u";
         try {
             TAPRunner r = new TAPRunner();
             Diag(source);
             r.CompileAndRun(new [] { new ScriptPath(source, null) });
             var sr = new StringReader(sw.GetStringBuilder().ToString());
             int idx = 0;
             do
             {
                 string s = sr.ReadLine();
                 if (s == null)
                 {
                     break;
                 }
                 if (idx >= expected.Length)
                 {
                     Diag("output has more lines than expected-arr: " + s);
                 }
                 else
                 {
                     Match m = ReRe.Match(expected[idx]);
                     if (m.Success)
                     {
                         string re = m.Groups[1].Value;
                         Like(s, re);
                     }
                     else
                     {
                         Is(s, expected[idx]);
                     }
                 }
                 ++idx;
             } while(true);
         } catch (Exception) {
             Diag("sw contains " + Regex.Replace(sw.GetStringBuilder().ToString(), "^", "#>> ", RegexOptions.Multiline));
             throw;
         }
     });
 }