From 58b5c4c2c06d292929cacdc9a85f66bc0500b941 Mon Sep 17 00:00:00 2001 From: Matthew Khouzam Date: Thu, 14 Jan 2016 21:53:35 -0500 Subject: [PATCH] ctf: enhance unit tests around EnumDeclaration Change-Id: If6f6cc514e13a8dbe50738cb6a7c41cd0c47f351 Signed-off-by: Matthew Khouzam Reviewed-on: https://git.eclipse.org/r/64429 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle Tested-by: Marc-Andre Laperle --- .../core/tests/types/EnumDeclarationTest.java | 113 +++++++++++++++++- 1 file changed, 110 insertions(+), 3 deletions(-) diff --git a/ctf/org.eclipse.tracecompass.ctf.core.tests/src/org/eclipse/tracecompass/ctf/core/tests/types/EnumDeclarationTest.java b/ctf/org.eclipse.tracecompass.ctf.core.tests/src/org/eclipse/tracecompass/ctf/core/tests/types/EnumDeclarationTest.java index 88802aa0bf..0136dbf030 100644 --- a/ctf/org.eclipse.tracecompass.ctf.core.tests/src/org/eclipse/tracecompass/ctf/core/tests/types/EnumDeclarationTest.java +++ b/ctf/org.eclipse.tracecompass.ctf.core.tests/src/org/eclipse/tracecompass/ctf/core/tests/types/EnumDeclarationTest.java @@ -12,6 +12,7 @@ package org.eclipse.tracecompass.ctf.core.tests.types; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -75,9 +76,85 @@ public class EnumDeclarationTest { long high = 1L; String label = ""; - boolean result = fixture.add(low, high, label); + assertTrue(fixture.add(low, high, label)); + assertEquals("", fixture.query(1)); + } + + /** + * Run the boolean add(long,long,String) method test several times out of + * order. + */ + @Test + public void testAddMany() { + assertTrue(fixture.add(00, 01, "fork")); + assertTrue(fixture.add(02, 03, "tork")); + assertTrue(fixture.add(04, 07, "mork")); + assertTrue(fixture.add(10, 20, "zork")); + assertTrue(fixture.add(22, 27, "york")); + assertTrue(fixture.add(21, 21, "bork")); + assertTrue(fixture.add(28, 50, "dork")); + assertEquals("fork", fixture.query(0)); + assertEquals("fork", fixture.query(1)); + assertEquals("tork", fixture.query(2)); + assertEquals("tork", fixture.query(3)); + assertEquals("mork", fixture.query(4)); + assertEquals("mork", fixture.query(5)); + assertEquals("mork", fixture.query(6)); + assertEquals("zork", fixture.query(10)); + assertEquals("zork", fixture.query(19)); + assertEquals("bork", fixture.query(21)); + assertEquals("york", fixture.query(22)); + } + + /** + * Tests adding two of the same elements, this is allowed in the ctf spec + */ + @Test + public void testDubs() { + assertTrue(fixture.add(00, 01, "fork")); + assertTrue(fixture.add(02, 03, "fork")); + assertNull(fixture.query(-1)); + assertEquals("fork", fixture.query(0)); + assertEquals("fork", fixture.query(1)); + assertEquals("fork", fixture.query(2)); + assertEquals("fork", fixture.query(3)); + assertNull(fixture.query(5)); + } + + /** + * Tests adding two of the same elements + */ + @Test + public void testOverlap1() { + assertTrue(fixture.add(00, 01, "fork")); + assertFalse(fixture.add(01, 03, "zork")); + } + + /** + * Tests adding two of the same elements + */ + @Test + public void testOverlap2() { + assertTrue(fixture.add(00, 02, "fork")); + assertFalse(fixture.add(01, 03, "zork")); + } - assertTrue(result); + /** + * Tests adding two of the same elements + */ + @Test + public void testOverlap3() { + assertTrue(fixture.add(00, 03, "fork")); + assertFalse(fixture.add(01, 02, "zork")); + } + + /** + * Tests adding two of the same elements + */ + @Test + public void testOverlap4() { + assertTrue(fixture.add(01, 03, "fork")); + assertFalse(fixture.add(00, 02, "zork")); } /** @@ -135,7 +212,6 @@ public class EnumDeclarationTest { b.add(0, 1, "hello"); b.add(2, 3, "kitty"); assertEquals(fixture.hashCode(), b.hashCode()); - } /** @@ -169,4 +245,35 @@ public class EnumDeclarationTest { assertNotEquals(d, a); } + /** + * Test the isBinaryEquivalent + */ + @Test + public void binaryEquivalentTest() { + EnumDeclaration a = new EnumDeclaration(IntegerDeclaration.INT_8_DECL); + EnumDeclaration b = new EnumDeclaration(IntegerDeclaration.INT_8_DECL); + b.add(2, 19, "hi"); + EnumDeclaration c = new EnumDeclaration(IntegerDeclaration.INT_32B_DECL); + EnumDeclaration d = new EnumDeclaration(IntegerDeclaration.INT_8_DECL); + assertFalse(a.isBinaryEquivalent(null)); + assertFalse(a.isBinaryEquivalent(IntegerDeclaration.INT_32B_DECL)); + assertFalse(a.isBinaryEquivalent(b)); + assertFalse(a.isBinaryEquivalent(c)); + assertFalse(b.isBinaryEquivalent(c)); + assertTrue(a.isBinaryEquivalent(d)); + assertFalse(b.isBinaryEquivalent(a)); + assertFalse(c.isBinaryEquivalent(a)); + assertFalse(c.isBinaryEquivalent(b)); + assertTrue(d.isBinaryEquivalent(a)); + a.add(2, 19, "hi"); + assertTrue(a.isBinaryEquivalent(a)); + assertTrue(a.isBinaryEquivalent(b)); + assertTrue(b.isBinaryEquivalent(a)); + assertFalse(a.isBinaryEquivalent(d)); + assertFalse(d.isBinaryEquivalent(a)); + d.add(2, 22, "hi"); + assertFalse(a.isBinaryEquivalent(d)); + assertFalse(d.isBinaryEquivalent(a)); + } + } -- 2.34.1