From 863d1541c90e8d81887768ab298e2cfc7519a650 Mon Sep 17 00:00:00 2001 From: Derek Verbrugge Date: Tue, 18 Oct 2022 14:28:31 -0400 Subject: [PATCH 1/8] Adds cmpae greater flag tests --- test/TinyRAM/Spec/EndToEndSpec.hs | 38 ++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/test/TinyRAM/Spec/EndToEndSpec.hs b/test/TinyRAM/Spec/EndToEndSpec.hs index 926fc51..ba17765 100644 --- a/test/TinyRAM/Spec/EndToEndSpec.hs +++ b/test/TinyRAM/Spec/EndToEndSpec.hs @@ -57,7 +57,9 @@ spec = describe "TinyRAM end to end" $ do shrTestCase cmpaeEqualTestCase - cmpaeGreaterTestCase + --cmpaeGreaterTestCaseL --bugged + cmpaeGreaterTestCaseE + cmpaeGreaterTestCaseG --cmpaeLessTestCase --bugged reported --cmpaeNegTestCase --bugged reported cmpaEqualTestCase @@ -239,8 +241,8 @@ cmpaeEqualTestCase = --cmov r1, 1 --answer r1 -cmpaeGreaterTestCase :: Spec -cmpaeGreaterTestCase = +cmpaeGreaterTestCaseG :: Spec +cmpaeGreaterTestCaseG = it "answers 1" $ do let program = construct @@ -254,6 +256,36 @@ cmpaeGreaterTestCase = answer <- execute program (InputTape []) (InputTape []) answer `shouldBe` Right 1 +-- cmpaeGreaterTestCaseL :: Spec +-- cmpaeGreaterTestCaseL = +-- it "answers 0" $ do +-- let program = +-- construct +-- [ Mov (reg' 0) (imm 0), +-- Mov (reg' 2) (imm 1), +-- Mov (reg' 3) (imm 2), +-- Cmpae (reg' 2) (reg 3), +-- Cmov (reg' 0) (imm 1), +-- Answer (reg 0) +-- ] +-- answer <- execute program (InputTape []) (InputTape []) +-- answer `shouldBe` Right 0 + +cmpaeGreaterTestCaseE :: Spec +cmpaeGreaterTestCaseE = + it "answers 1" $ do + let program = + construct + [ Mov (reg' 0) (imm 0), + Mov (reg' 2) (imm 2), + Mov (reg' 3) (imm 2), + Cmpae (reg' 2) (reg 3), + Cmov (reg' 0) (imm 1), + Answer (reg 0) + ] + answer <- execute program (InputTape []) (InputTape []) + answer `shouldBe` Right 1 + --; TinyRAM V=1.000 W=16 K=16 --mov r1, 0 --mov r2, 1 From 47d845df40665312defba9809a16830d32ae294d Mon Sep 17 00:00:00 2001 From: Derek Verbrugge Date: Tue, 18 Oct 2022 14:45:30 -0400 Subject: [PATCH 2/8] Adds cmpae equal test case flag tests. --- test/TinyRAM/Spec/EndToEndSpec.hs | 40 +++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/test/TinyRAM/Spec/EndToEndSpec.hs b/test/TinyRAM/Spec/EndToEndSpec.hs index ba17765..5f662f9 100644 --- a/test/TinyRAM/Spec/EndToEndSpec.hs +++ b/test/TinyRAM/Spec/EndToEndSpec.hs @@ -56,8 +56,10 @@ spec = describe "TinyRAM end to end" $ do shlFlagTestCase shrTestCase - cmpaeEqualTestCase - --cmpaeGreaterTestCaseL --bugged + -- cmpaeEqualTestCaseL --bugged reported + cmpaeEqualTestCaseE + cmpaeEqualTestCaseG + --cmpaeGreaterTestCaseL --bugged reported cmpaeGreaterTestCaseE cmpaeGreaterTestCaseG --cmpaeLessTestCase --bugged reported @@ -218,8 +220,8 @@ cjmpTestCase = --cmov r1, 1 --answer r1 -cmpaeEqualTestCase :: Spec -cmpaeEqualTestCase = +cmpaeEqualTestCaseE :: Spec +cmpaeEqualTestCaseE = it "answers 1" $ do let program = construct @@ -233,6 +235,36 @@ cmpaeEqualTestCase = answer <- execute program (InputTape []) (InputTape []) answer `shouldBe` Right 1 +-- cmpaeEqualTestCaseL :: Spec +-- cmpaeEqualTestCaseL = +-- it "answers 1" $ do +-- let program = +-- construct +-- [ Mov (reg' 0) (imm 0), +-- Mov (reg' 2) (imm 1), +-- Mov (reg' 3) (imm 2), +-- Cmpae (reg' 2) (reg 3), +-- Cmov (reg' 0) (imm 1), +-- Answer (reg 0) +-- ] +-- answer <- execute program (InputTape []) (InputTape []) +-- answer `shouldBe` Right 1 + +cmpaeEqualTestCaseG :: Spec +cmpaeEqualTestCaseG = + it "answers 0" $ do + let program = + construct + [ Mov (reg' 0) (imm 0), + Mov (reg' 2) (imm 2), + Mov (reg' 3) (imm 1), + Cmpae (reg' 2) (reg 3), + Cmov (reg' 0) (imm 1), + Answer (reg 0) + ] + answer <- execute program (InputTape []) (InputTape []) + answer `shouldBe` Right 1 + --; TinyRAM V=1.000 W=16 K=16 --mov r1, 0 --mov r2, 2 From fa0b50665cabc109478220a312545b15b543f220 Mon Sep 17 00:00:00 2001 From: Derek Verbrugge Date: Tue, 18 Oct 2022 15:28:36 -0400 Subject: [PATCH 3/8] renamed to prevent duplicate bug reports --- test/TinyRAM/Spec/EndToEndSpec.hs | 144 +++++++++--------------------- 1 file changed, 44 insertions(+), 100 deletions(-) diff --git a/test/TinyRAM/Spec/EndToEndSpec.hs b/test/TinyRAM/Spec/EndToEndSpec.hs index 5f662f9..1935318 100644 --- a/test/TinyRAM/Spec/EndToEndSpec.hs +++ b/test/TinyRAM/Spec/EndToEndSpec.hs @@ -56,26 +56,30 @@ spec = describe "TinyRAM end to end" $ do shlFlagTestCase shrTestCase - -- cmpaeEqualTestCaseL --bugged reported - cmpaeEqualTestCaseE - cmpaeEqualTestCaseG - --cmpaeGreaterTestCaseL --bugged reported - cmpaeGreaterTestCaseE - cmpaeGreaterTestCaseG - --cmpaeLessTestCase --bugged reported + -- cmpaeTestCaseL --bugged reported + cmpaeTestCaseE + cmpaeTestCaseG --cmpaeNegTestCase --bugged reported - cmpaEqualTestCase - cmpaGreaterTestCase - --cmpaLessTestCase --bugged reported + --cmpaeNegTestCase --bugged reported + --cmpaeNegTestCase --bugged reported + cmpaTestCaseE + cmpaTestCaseG + --cmpaTestCaseL --bugged reported + --cmpaNegTestCase --bugged reported + --cmpaNegTestCase --bugged reported --cmpaNegTestCase --bugged reported - cmpeEqualTestCase - -- cmpeGreaterTestCase --bugged reported - --cmpeLessTestCase --bugged reported + cmpeTestCaseE + -- cmpeTestCaseG --bugged reported + --cmpeTestCaseL --bugged reported --cmpeNegTestCase --bugged reported - cmpgeEqualTestCase - cmpgeGreaterTestCase - --cmpgeLessTestCase --bugged reported + --cmpeNegTestCase --bugged reported + --cmpeNegTestCase --bugged reported + cmpgeTestCaseE + cmpgeTestCaseG + --cmpgeTestCaseL --bugged reported cmpgeNegTestCase + --cmpgeNegTestCaseE + --cmpgeNegTestCaseG --answerR1TestCase --bugged reported @@ -220,8 +224,8 @@ cjmpTestCase = --cmov r1, 1 --answer r1 -cmpaeEqualTestCaseE :: Spec -cmpaeEqualTestCaseE = +cmpaeTestCaseE :: Spec +cmpaeTestCaseE = it "answers 1" $ do let program = construct @@ -235,8 +239,8 @@ cmpaeEqualTestCaseE = answer <- execute program (InputTape []) (InputTape []) answer `shouldBe` Right 1 --- cmpaeEqualTestCaseL :: Spec --- cmpaeEqualTestCaseL = +-- cmpaeTestCaseL :: Spec +-- cmpaeTestCaseL = -- it "answers 1" $ do -- let program = -- construct @@ -250,8 +254,8 @@ cmpaeEqualTestCaseE = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 1 -cmpaeEqualTestCaseG :: Spec -cmpaeEqualTestCaseG = +cmpaeTestCaseG :: Spec +cmpaeTestCaseG = it "answers 0" $ do let program = construct @@ -272,51 +276,6 @@ cmpaeEqualTestCaseG = --cmpae r2, r3 --cmov r1, 1 --answer r1 - -cmpaeGreaterTestCaseG :: Spec -cmpaeGreaterTestCaseG = - it "answers 1" $ do - let program = - construct - [ Mov (reg' 0) (imm 0), - Mov (reg' 2) (imm 2), - Mov (reg' 3) (imm 1), - Cmpae (reg' 2) (reg 3), - Cmov (reg' 0) (imm 1), - Answer (reg 0) - ] - answer <- execute program (InputTape []) (InputTape []) - answer `shouldBe` Right 1 - --- cmpaeGreaterTestCaseL :: Spec --- cmpaeGreaterTestCaseL = --- it "answers 0" $ do --- let program = --- construct --- [ Mov (reg' 0) (imm 0), --- Mov (reg' 2) (imm 1), --- Mov (reg' 3) (imm 2), --- Cmpae (reg' 2) (reg 3), --- Cmov (reg' 0) (imm 1), --- Answer (reg 0) --- ] --- answer <- execute program (InputTape []) (InputTape []) --- answer `shouldBe` Right 0 - -cmpaeGreaterTestCaseE :: Spec -cmpaeGreaterTestCaseE = - it "answers 1" $ do - let program = - construct - [ Mov (reg' 0) (imm 0), - Mov (reg' 2) (imm 2), - Mov (reg' 3) (imm 2), - Cmpae (reg' 2) (reg 3), - Cmov (reg' 0) (imm 1), - Answer (reg 0) - ] - answer <- execute program (InputTape []) (InputTape []) - answer `shouldBe` Right 1 --; TinyRAM V=1.000 W=16 K=16 --mov r1, 0 @@ -327,21 +286,6 @@ cmpaeGreaterTestCaseE = --answer r1 --Should be 0 --- cmpaeLessTestCase :: Spec --- cmpaeLessTestCase = --- it "answers 1" $ do --- let program = --- construct --- [ Mov (reg' 0) (imm 0), --- Mov (reg' 2) (imm 1), --- Mov (reg' 3) (imm 2), --- Cmpae (reg' 2) (reg 3), --- Cmov (reg' 0) (imm 1), --- Answer (reg 0) --- ] --- answer <- execute program (InputTape []) (InputTape []) --- answer `shouldBe` Right 1 - -- cmpaeNegTestCase :: Spec -- cmpaeNegTestCase = -- it "answers 0" $ do @@ -365,8 +309,8 @@ cmpaeGreaterTestCaseE = --cmov r1, 1 --answer r1 -cmpaEqualTestCase :: Spec -cmpaEqualTestCase = +cmpaTestCaseE :: Spec +cmpaTestCaseE = it "answers 1" $ do let program = construct @@ -388,8 +332,8 @@ cmpaEqualTestCase = --cmov r1, 1 --answer r1 Should be 1 -cmpaGreaterTestCase :: Spec -cmpaGreaterTestCase = +cmpaTestCaseG :: Spec +cmpaTestCaseG = it "answers 1" $ do let program = construct @@ -412,8 +356,8 @@ cmpaGreaterTestCase = --answer r1 --right 0 --- cmpaLessTestCase :: Spec --- cmpaLessTestCase = +-- cmpaTestCaseL :: Spec +-- cmpaTestCaseL = -- it "answers 0" $ do -- let program = -- construct @@ -451,8 +395,8 @@ cmpaGreaterTestCase = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 -cmpeEqualTestCase :: Spec -cmpeEqualTestCase = +cmpeTestCaseE :: Spec +cmpeTestCaseE = it "answers 1" $ do let program = construct @@ -466,8 +410,8 @@ cmpeEqualTestCase = answer <- execute program (InputTape []) (InputTape []) answer `shouldBe` Right 1 --- cmpeGreaterTestCase :: Spec --- cmpeGreaterTestCase = +-- cmpeTestCaseG :: Spec +-- cmpeTestCaseG = -- it "answers 0" $ do -- let program = -- construct @@ -481,8 +425,8 @@ cmpeEqualTestCase = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 --- cmpeLessTestCase :: Spec --- cmpeLessTestCase = +-- cmpeTestCaseL :: Spec +-- cmpeTestCaseL = -- it "answers 0" $ do -- let program = -- construct @@ -511,8 +455,8 @@ cmpeEqualTestCase = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 -cmpgeEqualTestCase :: Spec -cmpgeEqualTestCase = +cmpgeTestCaseE :: Spec +cmpgeTestCaseE = it "answers 1" $ do let program = construct @@ -526,8 +470,8 @@ cmpgeEqualTestCase = answer <- execute program (InputTape []) (InputTape []) answer `shouldBe` Right 1 -cmpgeGreaterTestCase :: Spec -cmpgeGreaterTestCase = +cmpgeTestCaseG :: Spec +cmpgeTestCaseG = it "answers 1" $ do let program = construct @@ -541,8 +485,8 @@ cmpgeGreaterTestCase = answer <- execute program (InputTape []) (InputTape []) answer `shouldBe` Right 1 --- cmpgeLessTestCase :: Spec --- cmpgeLessTestCase = +-- cmpgeTestCaseL :: Spec +-- cmpgeTestCaseL = -- it "answers 0" $ do -- let program = -- construct From 998f2365c255fef72309704387b3ef77660c913f Mon Sep 17 00:00:00 2001 From: Derek Verbrugge Date: Tue, 18 Oct 2022 15:36:18 -0400 Subject: [PATCH 4/8] adds negative flag tests for cmpae --- test/TinyRAM/Spec/EndToEndSpec.hs | 52 ++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/test/TinyRAM/Spec/EndToEndSpec.hs b/test/TinyRAM/Spec/EndToEndSpec.hs index 1935318..2e672aa 100644 --- a/test/TinyRAM/Spec/EndToEndSpec.hs +++ b/test/TinyRAM/Spec/EndToEndSpec.hs @@ -59,21 +59,21 @@ spec = describe "TinyRAM end to end" $ do -- cmpaeTestCaseL --bugged reported cmpaeTestCaseE cmpaeTestCaseG - --cmpaeNegTestCase --bugged reported - --cmpaeNegTestCase --bugged reported - --cmpaeNegTestCase --bugged reported + --cmpaeNegTestCaseG --bugged reported + cmpaeNegTestCaseE + cmpaeNegTestCaseL cmpaTestCaseE cmpaTestCaseG --cmpaTestCaseL --bugged reported - --cmpaNegTestCase --bugged reported - --cmpaNegTestCase --bugged reported - --cmpaNegTestCase --bugged reported + --cmpaNegTestCaseL --bugged reported + --cmpaNegTestCaseE + --cmpaNegTestCaseG cmpeTestCaseE -- cmpeTestCaseG --bugged reported --cmpeTestCaseL --bugged reported - --cmpeNegTestCase --bugged reported - --cmpeNegTestCase --bugged reported - --cmpeNegTestCase --bugged reported + --cmpeNegTestCaseL --bugged reported + --cmpeNegTestCaseE + --cmpeNegTestCaseG cmpgeTestCaseE cmpgeTestCaseG --cmpgeTestCaseL --bugged reported @@ -286,8 +286,8 @@ cmpaeTestCaseG = --answer r1 --Should be 0 --- cmpaeNegTestCase :: Spec --- cmpaeNegTestCase = +-- cmpaeNegTestCaseG :: Spec +-- cmpaeNegTestCaseG = -- it "answers 0" $ do -- let program = -- construct @@ -301,6 +301,36 @@ cmpaeTestCaseG = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 +cmpaeNegTestCaseE :: Spec +cmpaeNegTestCaseE = + it "answers 1" $ do + let program = + construct + [ Mov (reg' 0) (imm 0), + Mov (reg' 2) (imm (negate 2)), + Mov (reg' 3) (imm (negate 2)), + Cmpae (reg' 2) (reg 3), + Cmov (reg' 0) (imm 1), + Answer (reg 0) + ] + answer <- execute program (InputTape []) (InputTape []) + answer `shouldBe` Right 1 + +cmpaeNegTestCaseL :: Spec +cmpaeNegTestCaseL = + it "answers 1" $ do + let program = + construct + [ Mov (reg' 0) (imm 0), + Mov (reg' 2) (imm (negate 2)), + Mov (reg' 3) (imm 2), + Cmpae (reg' 2) (reg 3), + Cmov (reg' 0) (imm 1), + Answer (reg 0) + ] + answer <- execute program (InputTape []) (InputTape []) + answer `shouldBe` Right 1 + --; TinyRAM V=1.000 W=16 K=16 --mov r1, 0 --mov r2, 2 From 39dd3225da619f3d25cad098695c59f6b520c909 Mon Sep 17 00:00:00 2001 From: Derek Verbrugge Date: Tue, 18 Oct 2022 15:44:52 -0400 Subject: [PATCH 5/8] cmpaNegTestCaseL Bug --- test/TinyRAM/Spec/EndToEndSpec.hs | 38 +++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/test/TinyRAM/Spec/EndToEndSpec.hs b/test/TinyRAM/Spec/EndToEndSpec.hs index 2e672aa..e8ad7c6 100644 --- a/test/TinyRAM/Spec/EndToEndSpec.hs +++ b/test/TinyRAM/Spec/EndToEndSpec.hs @@ -65,9 +65,9 @@ spec = describe "TinyRAM end to end" $ do cmpaTestCaseE cmpaTestCaseG --cmpaTestCaseL --bugged reported - --cmpaNegTestCaseL --bugged reported + --cmpaNegTestCaseG --bugged reported + cmpaNegTestCaseL --cmpaNegTestCaseE - --cmpaNegTestCaseG cmpeTestCaseE -- cmpeTestCaseG --bugged reported --cmpeTestCaseL --bugged reported @@ -410,8 +410,8 @@ cmpaTestCaseG = --answer r1 --cmpaneg --- cmpaNegTestCase :: Spec --- cmpaNegTestCase = +-- cmpaNegTestCaseG :: Spec +-- cmpaNegTestCaseG = -- it "answers 0" $ do -- let program = -- construct @@ -425,6 +425,36 @@ cmpaTestCaseG = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 +cmpaNegTestCaseL :: Spec +cmpaNegTestCaseL = + it "answers 0" $ do + let program = + construct + [ Mov (reg' 0) (imm 0), + Mov (reg' 2) (imm (negate 2)), + Mov (reg' 3) (imm 2), + Cmpa (reg' 2) (reg 3), + Cmov (reg' 0) (imm 1), + Answer (reg 0) + ] + answer <- execute program (InputTape []) (InputTape []) + answer `shouldBe` Right 0 + +-- cmpaNegTestCaseE :: Spec +-- cmpaNegTestCaseE = +-- it "answers 0" $ do +-- let program = +-- construct +-- [ Mov (reg' 0) (imm 0), +-- Mov (reg' 2) (imm (negate 2)), +-- Mov (reg' 3) (imm (negate 2)), +-- Cmpa (reg' 2) (reg 3), +-- Cmov (reg' 0) (imm 1), +-- Answer (reg 0) +-- ] +-- answer <- execute program (InputTape []) (InputTape []) +-- answer `shouldBe` Right 0 + cmpeTestCaseE :: Spec cmpeTestCaseE = it "answers 1" $ do From 96827349481c50f45f494b6148a00161ca14645a Mon Sep 17 00:00:00 2001 From: Derek Verbrugge Date: Tue, 18 Oct 2022 15:56:19 -0400 Subject: [PATCH 6/8] cmpaNegTestCaseE bug --- test/TinyRAM/Spec/EndToEndSpec.hs | 40 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/test/TinyRAM/Spec/EndToEndSpec.hs b/test/TinyRAM/Spec/EndToEndSpec.hs index e8ad7c6..3cb001d 100644 --- a/test/TinyRAM/Spec/EndToEndSpec.hs +++ b/test/TinyRAM/Spec/EndToEndSpec.hs @@ -66,8 +66,8 @@ spec = describe "TinyRAM end to end" $ do cmpaTestCaseG --cmpaTestCaseL --bugged reported --cmpaNegTestCaseG --bugged reported - cmpaNegTestCaseL - --cmpaNegTestCaseE + --cmpaNegTestCaseL --bugged reported + cmpaNegTestCaseE cmpeTestCaseE -- cmpeTestCaseG --bugged reported --cmpeTestCaseL --bugged reported @@ -425,29 +425,14 @@ cmpaTestCaseG = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 -cmpaNegTestCaseL :: Spec -cmpaNegTestCaseL = - it "answers 0" $ do - let program = - construct - [ Mov (reg' 0) (imm 0), - Mov (reg' 2) (imm (negate 2)), - Mov (reg' 3) (imm 2), - Cmpa (reg' 2) (reg 3), - Cmov (reg' 0) (imm 1), - Answer (reg 0) - ] - answer <- execute program (InputTape []) (InputTape []) - answer `shouldBe` Right 0 - --- cmpaNegTestCaseE :: Spec --- cmpaNegTestCaseE = +-- cmpaNegTestCaseL :: Spec +-- cmpaNegTestCaseL = -- it "answers 0" $ do -- let program = -- construct -- [ Mov (reg' 0) (imm 0), -- Mov (reg' 2) (imm (negate 2)), --- Mov (reg' 3) (imm (negate 2)), +-- Mov (reg' 3) (imm 2), -- Cmpa (reg' 2) (reg 3), -- Cmov (reg' 0) (imm 1), -- Answer (reg 0) @@ -455,6 +440,21 @@ cmpaNegTestCaseL = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 +cmpaNegTestCaseE :: Spec +cmpaNegTestCaseE = + it "answers 0" $ do + let program = + construct + [ Mov (reg' 0) (imm 0), + Mov (reg' 2) (imm (negate 2)), + Mov (reg' 3) (imm (negate 2)), + Cmpa (reg' 2) (reg 3), + Cmov (reg' 0) (imm 1), + Answer (reg 0) + ] + answer <- execute program (InputTape []) (InputTape []) + answer `shouldBe` Right 0 + cmpeTestCaseE :: Spec cmpeTestCaseE = it "answers 1" $ do From fbfaf1d192f97d7bb39460939998c73fa5ce248d Mon Sep 17 00:00:00 2001 From: Derek Verbrugge Date: Tue, 18 Oct 2022 16:07:05 -0400 Subject: [PATCH 7/8] adds cmoeNegTestCaseE --- test/TinyRAM/Spec/EndToEndSpec.hs | 70 ++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 20 deletions(-) diff --git a/test/TinyRAM/Spec/EndToEndSpec.hs b/test/TinyRAM/Spec/EndToEndSpec.hs index 3cb001d..d888e12 100644 --- a/test/TinyRAM/Spec/EndToEndSpec.hs +++ b/test/TinyRAM/Spec/EndToEndSpec.hs @@ -67,13 +67,13 @@ spec = describe "TinyRAM end to end" $ do --cmpaTestCaseL --bugged reported --cmpaNegTestCaseG --bugged reported --cmpaNegTestCaseL --bugged reported - cmpaNegTestCaseE + --cmpaNegTestCaseE --bugged reported cmpeTestCaseE -- cmpeTestCaseG --bugged reported --cmpeTestCaseL --bugged reported - --cmpeNegTestCaseL --bugged reported - --cmpeNegTestCaseE - --cmpeNegTestCaseG + --cmpeNegTestCaseG --bugged reported + cmpeNegTestCaseE + --cmpeNegTestCaseL cmpgeTestCaseE cmpgeTestCaseG --cmpgeTestCaseL --bugged reported @@ -440,20 +440,20 @@ cmpaTestCaseG = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 -cmpaNegTestCaseE :: Spec -cmpaNegTestCaseE = - it "answers 0" $ do - let program = - construct - [ Mov (reg' 0) (imm 0), - Mov (reg' 2) (imm (negate 2)), - Mov (reg' 3) (imm (negate 2)), - Cmpa (reg' 2) (reg 3), - Cmov (reg' 0) (imm 1), - Answer (reg 0) - ] - answer <- execute program (InputTape []) (InputTape []) - answer `shouldBe` Right 0 +-- cmpaNegTestCaseE :: Spec +-- cmpaNegTestCaseE = +-- it "answers 0" $ do +-- let program = +-- construct +-- [ Mov (reg' 0) (imm 0), +-- Mov (reg' 2) (imm (negate 2)), +-- Mov (reg' 3) (imm (negate 2)), +-- Cmpa (reg' 2) (reg 3), +-- Cmov (reg' 0) (imm 1), +-- Answer (reg 0) +-- ] +-- answer <- execute program (InputTape []) (InputTape []) +-- answer `shouldBe` Right 0 cmpeTestCaseE :: Spec cmpeTestCaseE = @@ -500,8 +500,8 @@ cmpeTestCaseE = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 --- cmpeNegTestCase :: Spec --- cmpeNegTestCase = +-- cmpeNegTestCaseG :: Spec +-- cmpeNegTestCaseG = -- it "answers 0" $ do -- let program = -- construct @@ -515,6 +515,36 @@ cmpeTestCaseE = -- answer <- execute program (InputTape []) (InputTape []) -- answer `shouldBe` Right 0 +cmpeNegTestCaseE :: Spec +cmpeNegTestCaseE = + it "answers 1" $ do + let program = + construct + [ Mov (reg' 0) (imm 0), + Mov (reg' 2) (imm (negate 1)), + Mov (reg' 3) (imm (negate 1)), + Cmpe (reg' 2) (reg 3), + Cmov (reg' 0) (imm 1), + Answer (reg 0) + ] + answer <- execute program (InputTape []) (InputTape []) + answer `shouldBe` Right 1 + +-- cmpeNegTestCaseL :: Spec +-- cmpeNegTestCaseL = +-- it "answers 0" $ do +-- let program = +-- construct +-- [ Mov (reg' 0) (imm 0), +-- Mov (reg' 2) (imm (negate 1)), +-- Mov (reg' 3) (imm negate 1), +-- Cmpe (reg' 2) (reg 3), +-- Cmov (reg' 0) (imm 1), +-- Answer (reg 0) +-- ] +-- answer <- execute program (InputTape []) (InputTape []) +-- answer `shouldBe` Right 0 + cmpgeTestCaseE :: Spec cmpgeTestCaseE = it "answers 1" $ do From 9f45f2814229c8cab15e33da62b9e576ce1efc78 Mon Sep 17 00:00:00 2001 From: Derek Verbrugge Date: Tue, 18 Oct 2022 16:09:49 -0400 Subject: [PATCH 8/8] cmpeNegTestCaseLbug --- test/TinyRAM/Spec/EndToEndSpec.hs | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/test/TinyRAM/Spec/EndToEndSpec.hs b/test/TinyRAM/Spec/EndToEndSpec.hs index d888e12..44ac4d4 100644 --- a/test/TinyRAM/Spec/EndToEndSpec.hs +++ b/test/TinyRAM/Spec/EndToEndSpec.hs @@ -73,7 +73,7 @@ spec = describe "TinyRAM end to end" $ do --cmpeTestCaseL --bugged reported --cmpeNegTestCaseG --bugged reported cmpeNegTestCaseE - --cmpeNegTestCaseL + cmpeNegTestCaseL cmpgeTestCaseE cmpgeTestCaseG --cmpgeTestCaseL --bugged reported @@ -530,20 +530,20 @@ cmpeNegTestCaseE = answer <- execute program (InputTape []) (InputTape []) answer `shouldBe` Right 1 --- cmpeNegTestCaseL :: Spec --- cmpeNegTestCaseL = --- it "answers 0" $ do --- let program = --- construct --- [ Mov (reg' 0) (imm 0), --- Mov (reg' 2) (imm (negate 1)), --- Mov (reg' 3) (imm negate 1), --- Cmpe (reg' 2) (reg 3), --- Cmov (reg' 0) (imm 1), --- Answer (reg 0) --- ] --- answer <- execute program (InputTape []) (InputTape []) --- answer `shouldBe` Right 0 +cmpeNegTestCaseL :: Spec +cmpeNegTestCaseL = + it "answers 0" $ do + let program = + construct + [ Mov (reg' 0) (imm 0), + Mov (reg' 2) (imm (negate 1)), + Mov (reg' 3) (imm 1), + Cmpe (reg' 2) (reg 3), + Cmov (reg' 0) (imm 1), + Answer (reg 0) + ] + answer <- execute program (InputTape []) (InputTape []) + answer `shouldBe` Right 0 cmpgeTestCaseE :: Spec cmpgeTestCaseE =