diff --git a/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000005.sst b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000005.sst new file mode 100644 index 0000000..425b1dd Binary files /dev/null and b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000005.sst differ diff --git a/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000046.log b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000046.log new file mode 100644 index 0000000..9e0f96a Binary files /dev/null and b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000046.log differ diff --git a/com.minres.scviewer.database.test/inputs/my_ldb.txldb/CURRENT b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/CURRENT new file mode 100644 index 0000000..800d995 --- /dev/null +++ b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/CURRENT @@ -0,0 +1 @@ +MANIFEST-000045 diff --git a/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOCK b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOG b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOG new file mode 100644 index 0000000..742e653 --- /dev/null +++ b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOG @@ -0,0 +1 @@ +2018/11/03-15:38:59.715484 139851522529088Delete type=3 #1 diff --git a/com.minres.scviewer.database.test/inputs/my_ldb.txldb/MANIFEST-000045 b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/MANIFEST-000045 new file mode 100644 index 0000000..0f6af62 Binary files /dev/null and b/com.minres.scviewer.database.test/inputs/my_ldb.txldb/MANIFEST-000045 differ diff --git a/com.minres.scviewer.database.test/inputs/my_db.txdb b/com.minres.scviewer.database.test/inputs/my_sqldb.txdb similarity index 100% rename from com.minres.scviewer.database.test/inputs/my_db.txdb rename to com.minres.scviewer.database.test/inputs/my_sqldb.txdb diff --git a/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java b/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java index 8f5fb1b..cd32245 100644 --- a/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java +++ b/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java @@ -15,11 +15,22 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.File; +import java.util.List; +import java.util.Map.Entry; +import java.util.NavigableMap; import org.junit.After; import org.junit.Before; import org.junit.Test; +import com.minres.scviewer.database.AssociationType; +import com.minres.scviewer.database.DataType; +import com.minres.scviewer.database.ITx; +import com.minres.scviewer.database.ITxAttribute; +import com.minres.scviewer.database.ITxEvent; +import com.minres.scviewer.database.ITxEvent.Type; +import com.minres.scviewer.database.ITxStream; +import com.minres.scviewer.database.IWaveform; import com.minres.scviewer.database.IWaveformDb; import com.minres.scviewer.database.IWaveformDbFactory; @@ -68,7 +79,7 @@ public class DatabaseServicesTest { @Test public void testTxSQLite() throws Exception { - File f = new File("inputs/my_db.txdb").getAbsoluteFile(); + File f = new File("inputs/my_sqldb.txdb").getAbsoluteFile(); assertTrue(f.exists()); waveformDb.load(f); assertNotNull(waveformDb); @@ -86,6 +97,39 @@ public class DatabaseServicesTest { assertEquals(1, waveformDb.getChildNodes().size()); } + @Test + public void testTxLDb() throws Exception { + File f = new File("inputs/my_ldb.txldb").getAbsoluteFile(); + assertTrue(f.exists()); + waveformDb.load(f); + assertNotNull(waveformDb); + assertEquals(1, waveformDb.getChildNodes().size()); + List> waves = waveformDb.getAllWaves(); + assertEquals(3, waves.size()); + IWaveform wave = waves.get(0); + assertTrue(wave instanceof ITxStream); + ITxStream stream = (ITxStream) wave; + assertEquals(2, stream.getGenerators().size()); + NavigableMap> eventsList = stream.getEvents(); + assertEquals(18, eventsList.size()); + Entry> eventEntry = eventsList.firstEntry(); + assertEquals(100000L, (long) eventEntry.getKey()); + List events = eventEntry.getValue(); + assertEquals(2, events.size()); + ITxEvent event = events.get(0); + assertEquals(Type.BEGIN, event.getType()); + ITx tx = event.getTransaction(); + assertEquals(3L, (long) tx.getId()); + List attrs = tx.getAttributes(); + assertEquals(1, attrs.size()); + ITxAttribute attr = attrs.get(0); + assertEquals("data", attr.getName()); + assertEquals(DataType.UNSIGNED, attr.getDataType()); + assertEquals(AssociationType.END, attr.getType()); + assertTrue(attr.getValue() instanceof Integer); + assertEquals(0, (int) attr.getValue()); + } + @Test public void testHierarchicalVCD() throws Exception { File f = new File("inputs/simple_system.vcd").getAbsoluteFile();