From 6673cedf0fa1170e1957fea9cd8a8d62f3745f77 Mon Sep 17 00:00:00 2001 From: "Frank.R.Wu" Date: Thu, 11 Nov 2021 16:07:14 +0800 Subject: [PATCH] feat: update PrintMemory in tests use JUnit to update PrintMemory in tests and add test resources --- .../test}/MemoryDumpRecoverTest.java | 7 ++-- .../test}/MemoryDumpTest.java | 4 +-- .../bdware/sc/memory/test/PrintMemory.java | 32 ++++++++++++++++++ .../bdware/sc/test/synctest/PrintMemory.java | 18 ---------- src/test/resources/memory/BDCoin.ckpt | Bin 0 -> 858286 bytes src/test/resources/memory/Counter.ckpt | Bin 0 -> 1214 bytes 6 files changed, 38 insertions(+), 23 deletions(-) rename src/test/java/org/bdware/sc/{test/synctest => memory/test}/MemoryDumpRecoverTest.java (94%) rename src/test/java/org/bdware/sc/{test/synctest => memory/test}/MemoryDumpTest.java (97%) create mode 100644 src/test/java/org/bdware/sc/memory/test/PrintMemory.java delete mode 100644 src/test/java/org/bdware/sc/test/synctest/PrintMemory.java create mode 100644 src/test/resources/memory/BDCoin.ckpt create mode 100644 src/test/resources/memory/Counter.ckpt diff --git a/src/test/java/org/bdware/sc/test/synctest/MemoryDumpRecoverTest.java b/src/test/java/org/bdware/sc/memory/test/MemoryDumpRecoverTest.java similarity index 94% rename from src/test/java/org/bdware/sc/test/synctest/MemoryDumpRecoverTest.java rename to src/test/java/org/bdware/sc/memory/test/MemoryDumpRecoverTest.java index 69834d8..1e4af6e 100644 --- a/src/test/java/org/bdware/sc/test/synctest/MemoryDumpRecoverTest.java +++ b/src/test/java/org/bdware/sc/memory/test/MemoryDumpRecoverTest.java @@ -1,6 +1,7 @@ -package org.bdware.sc.test.synctest; +package org.bdware.sc.memory.test; -import java.io.*; +import java.io.FileInputStream; +import java.io.IOException; import java.util.Scanner; public class MemoryDumpRecoverTest { @@ -14,7 +15,7 @@ public class MemoryDumpRecoverTest { StringBuilder sb = new StringBuilder(); try { Scanner sc = new Scanner(new FileInputStream(file)); - for (; sc.hasNextLine();) { + while (sc.hasNextLine()) { sb.append(sc.nextLine()).append("\n"); } } catch (Exception e) { diff --git a/src/test/java/org/bdware/sc/test/synctest/MemoryDumpTest.java b/src/test/java/org/bdware/sc/memory/test/MemoryDumpTest.java similarity index 97% rename from src/test/java/org/bdware/sc/test/synctest/MemoryDumpTest.java rename to src/test/java/org/bdware/sc/memory/test/MemoryDumpTest.java index c069ef9..af994aa 100644 --- a/src/test/java/org/bdware/sc/test/synctest/MemoryDumpTest.java +++ b/src/test/java/org/bdware/sc/memory/test/MemoryDumpTest.java @@ -1,6 +1,6 @@ -package org.bdware.sc.test.synctest; +package org.bdware.sc.memory.test; -import java.io.*; +import java.io.IOException; public class MemoryDumpTest { public static void main(String[] args) throws IOException { diff --git a/src/test/java/org/bdware/sc/memory/test/PrintMemory.java b/src/test/java/org/bdware/sc/memory/test/PrintMemory.java new file mode 100644 index 0000000..a478e4c --- /dev/null +++ b/src/test/java/org/bdware/sc/memory/test/PrintMemory.java @@ -0,0 +1,32 @@ +package org.bdware.sc.memory.test; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.bdware.sc.memory.MemoryDumpUtil; +import org.bdware.sc.util.HashUtil; +import org.junit.Test; + +import java.net.URL; + +public class PrintMemory { + private static final Logger LOGGER = LogManager.getLogger(PrintMemory.class); + + @Test + public void printBDCoin() { + printMemory("/memory/BDCoin.ckpt"); + } + + @Test + public void printCounter() { + printMemory("/memory/Counter.ckpt"); + } + + private void printMemory(String path) { + URL resource = this.getClass().getResource(path); + assert null != resource; + String content = MemoryDumpUtil.getContentFromFile(resource.getFile()); + assert null != content; + LOGGER.info(content.length()); + LOGGER.info(HashUtil.sha3(content)); + } +} diff --git a/src/test/java/org/bdware/sc/test/synctest/PrintMemory.java b/src/test/java/org/bdware/sc/test/synctest/PrintMemory.java deleted file mode 100644 index 5afa3b9..0000000 --- a/src/test/java/org/bdware/sc/test/synctest/PrintMemory.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bdware.sc.test.synctest; - -import org.bdware.sc.memory.MemoryDumpUtil; - -public class PrintMemory { - - public static void main(String[] args){ - printMemory(); - } - - public static void printMemory(){ - String path = "/Users/zhangyixuan/Lab/new/BDContract/front-agent/BDWareProjectDir/ADSPDir/-1676897265/memory/2020-08-15-22:04:17_175580150"; - - String path2 = "/Users/zhangyixuan/Lab/new/BDContract/front-agent/BDWareProjectDir/memory/mathOperation/2021-01-30.15:38:13"; - String content = MemoryDumpUtil.getContentFromFile(path2); - System.out.println(content); - } -} diff --git a/src/test/resources/memory/BDCoin.ckpt b/src/test/resources/memory/BDCoin.ckpt new file mode 100644 index 0000000000000000000000000000000000000000..df5f643b033f28a5fb3dfd6866a7ac974860dd33 GIT binary patch literal 858286 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 @z#w3{wXEsMk< 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 literal 0 HcmV?d00001