private static bool asmstuff(string code, out string result) { if (File.Exists(mydir + "/f.s")) { File.Delete(mydir + "/f.s"); } if (File.Exists(mydir + "/f.o")) { File.Delete(mydir + "/f.o"); } StreamWriter file = new StreamWriter(mydir + "/f.s"); file.WriteLine(".intel_syntax noprefix\n_main:\n" + code); file.Close(); var o = new MyStringBuilder(); bool res = false; if (exec(o, gcc, "-m32 -c f.s -o f.o")) { o.Clear(); res = exec(o, objdump, "-z -M intel -d f.o"); } result = o.ToString(); if (File.Exists(mydir + "/f.s")) { File.Delete(mydir + "/f.s"); } if (File.Exists(mydir + "/f.o")) { File.Delete(mydir + "/f.o"); } return(res); }
public void Clear(string data) { var sb = new MyStringBuilder(); sb.Append(data); sb.Clear(); Assert.AreEqual(0, sb.Count); Assert.AreEqual(string.Empty, sb.ToString()); Assert.AreEqual(0, sb.ToString().Length); }
public void Should_Check_Clear() { //arrange string str = "Hello"; string resultStr = ""; //act MyStringBuilder builder = new MyStringBuilder(str); builder.Clear(); var result = builder.ToString(); //assert result.ShouldBeEquivalentTo(resultStr); }
// destroyReally表示是否真的要销毁bytes,如果真的回收,则会交给GC回收掉 public new void destroyBuilder(MyStringBuilder builder, bool destroyReally = false) { if (!isMainThread()) { logError("只能在主线程中使用StringBuilderPool"); return; } if (builder == null) { return; } builder.Clear(); if (!destroyReally) { addUnuse(builder); } removeInuse(builder); }