public async Task TestMethod2() { CompactLog log = new CompactLog(); await log.Add("文字{0}", new object[] { 1 }); Assert.AreEqual(1, log.EntryCount); var entry_create_time = log.GetEntry()[0].StartTime; log.WriteToLog((text) => { Assert.AreEqual(true, text.Contains("文字1")); }); // entry 的时间在 WriteToLog() 以后不会变 Assert.AreEqual(entry_create_time, log.GetEntry()[0].StartTime); log.RemoveEntry("文字{0}"); Assert.AreEqual(0, log.EntryCount); await log.Add("文字{0}", new object[] { 2 }); Assert.AreEqual(1, log.EntryCount); log.WriteToLog((text) => { Assert.AreEqual(false, text.Contains("文字1")); Assert.AreEqual(true, text.Contains("文字2")); }); }
public async Task TestMethod1() { CompactLog log = new CompactLog(); await log.Add("文字{0}", new object[] { 1 }); Assert.AreEqual(1, log.EntryCount); log.RemoveEntry("文字{0}"); Assert.AreEqual(0, log.EntryCount); }
public async Task TestMethod3() { CompactLog log = new CompactLog(); await log.Add("文字{0}", new object[] { 1 }); Assert.AreEqual(1, log.EntryCount); var entry_create_time = log.GetEntry()[0].StartTime; log.WriteToLog((text) => { Assert.AreEqual(true, text.Contains("文字1")); }, "reset_start_time"); // entry 依然存在 Assert.AreEqual(1, log.EntryCount); // 但 entry.TotalCount 已经被清除 Assert.AreEqual(0, log.GetEntry()[0].TotalCount); // entry.Datas 也被清除 Assert.AreEqual(0, log.GetEntry()[0].Datas.Count); // entry 的时间在 WriteToLog() 以后会变 Assert.AreNotEqual(entry_create_time, log.GetEntry()[0].StartTime); // 变成 DateTime.MinValue Assert.AreEqual(DateTime.MinValue, log.GetEntry()[0].StartTime); // entry.TotalCount 为空的情况下调用 WriteToLog() 是不会输出的 int write_count = 0; log.WriteToLog((text) => { write_count++; }); Assert.AreEqual(0, write_count); }
public MainWindow() : base(WindowType.Toplevel) { Title = Mono.Unix.Catalog.GetString ("Viewer for system calls"); view_mode = DEFAULT_VIEW_MODE; full_log = null; compact_log = null; statusbar_has_transient_message = false; statusbar_transient_timeout_id = 0; child_kill_expected = false; error_window = null; build_window (); set_record_mode (RecordMode.Recording); }
ILogProvider create_derived_log() { ILogProvider sublog; switch (view_mode) { case ViewMode.Compact: compact_log = new CompactLog (full_log); sublog = compact_log; break; case ViewMode.Full: compact_log = null; sublog = full_log; break; default: Debug.Assert (false, "not reached"); sublog = null; break; } switch (filter_mode) { case FilterMode.Unfiltered: filtered_log = null; return sublog; case FilterMode.Filtered: /* FIXME: what if compiling the regex fails? */ Regex regex = make_regex (filter_entry.Text); if (regex != null) filtered_log = new FilteredLog (sublog, new RegexFilter (new RegexCache (regex))); else filtered_log = null; return filtered_log; } Debug.Assert (false, "not reached"); return null; }