| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-01 15:58:25 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-01 15:58:25 +0200 |
| commit | 3466690e0a13a145d8d1eef89eba3f962f9f6e2b (patch) | |
| tree | 92002b426a60b770ab3bbd784e326466bd28737a | |
| parent | dcc5284790f16566c4885f9e0fa3c6fb9577c11d (diff) | |
Adds test cases for the issue.
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | data/property/simple_flip_flop.pro | 1 | ||||
| -rw-r--r-- | data/property/simple_flip_flop_instance.pro | 95 | ||||
| -rw-r--r-- | data/property/test-case/fast.pp (renamed from data/property/simple_flip_flop_instance.pp) | 0 | ||||
| -rw-r--r-- | data/property/test-case/fast.pro | 57 | ||||
| -rw-r--r-- | data/property/test-case/slow.pp | 6 | ||||
| -rw-r--r-- | data/property/test-case/slow.pro | 60 |
7 files changed, 125 insertions, 96 deletions
@@ -1,7 +1,7 @@ ## Makefile Parameters ######################################################### LEVEL_FILES = $(wildcard ${CURDIR}/data/level/*.lvl) PROPERTY_FILES = \ - $(wildcard ${CURDIR}/data/property/*.pro) + $(wildcard ${CURDIR}/data/property/test-case/*.pro) # $(wildcard ${CURDIR}/data/property/cnes/*.pro) AST_FILE = ${CURDIR}/data/ast/best_chronometer_ever.xml #AST_FILE = ${CURDIR}/data/ast/pong.xml diff --git a/data/property/simple_flip_flop.pro b/data/property/simple_flip_flop.pro index e1621c1..b054c7f 100644 --- a/data/property/simple_flip_flop.pro +++ b/data/property/simple_flip_flop.pro @@ -5,6 +5,7 @@ (ps process STRUCT_SIMPLE_FLIP_FLOP_PROCESS) ) (and + (not (eq clk reg)) (is_explicit_process ps) (is_in_sensitivity_list clk ps) (CTL_verifies ps diff --git a/data/property/simple_flip_flop_instance.pro b/data/property/simple_flip_flop_instance.pro deleted file mode 100644 index a3881aa..0000000 --- a/data/property/simple_flip_flop_instance.pro +++ /dev/null @@ -1,95 +0,0 @@ -(tag_existing - ( - (ent entity STRUCT_ENTITY) - (reg waveform STRUCT_SIMPLE_FLIP_FLOP_OUTPUT) - (clk waveform STRUCT_SIMPLE_FLIP_FLOP_CLOCK) - (ps process STRUCT_SIMPLE_FLIP_FLOP_PROCESS) - ) - (and - (is_explicit_process ps) -;; debt: )) -;; Get ps instance -(exists i_ps ps_instance - (and - (is_visible_in i_ps ent) - (is_ps_instance_of i_ps ps) -;; debt: )) )) -;; Get a local waveform matching a clk instance -(exists i_clk wfm_instance - (and - (process_instance_maps i_ps i_clk _) -;; (is_visible_in i_clk ent) - (is_wfm_instance_of i_clk clk) - (exists local_clk waveform - (and - (process_instance_maps i_ps i_clk local_clk) - (is_in_sensitivity_list local_clk ps) -;; debt: )))) )))) -;; Get a local waveform matching a reg instance -(exists i_reg wfm_instance - (and - (process_instance_maps i_ps i_reg _) -;; (is_visible_in i_reg ent) - (is_wfm_instance_of i_reg reg) - (exists local_reg waveform - (and - (process_instance_maps i_ps i_reg local_reg) -;; debt: )))) )))))))) -;; Analyze ps using the local waveforms -(CTL_verifies ps - (AF - (and - (kind "if") - (or - (and - (is_read_structure "(??)") - (or - (is_read_element "0" "falling_edge") - (is_read_element "0" "rising_edge") - ) - (is_read_element "1" local_clk) - ) - (and - (is_read_structure "(?(??)(???))") - (is_read_element "0" "and") - (is_read_element "1" "event") - (is_read_element "2" local_clk) - (is_read_element "3" "=") - (or - (is_read_element "4" local_clk) - (is_read_element "5" local_clk) - ) - ) - (and - (is_read_structure "(?(???)(??))") - (is_read_element "0" "and") - (is_read_element "1" "=") - (or - (is_read_element "2" local_clk) - (is_read_element "3" local_clk) - ) - (is_read_element "4" "event") - (is_read_element "5" local_clk) - ) - ) - (EX - (and - (has_option "COND_WAS_TRUE") - (does_not_reach_parent_before - (and - (expr_writes local_reg) - (AX - (not - (EF - (expr_writes local_reg) - ) - ) - ) - ) - ) - ) - ) - ) - ) -) -)))))))))))) diff --git a/data/property/simple_flip_flop_instance.pp b/data/property/test-case/fast.pp index b460eec..b460eec 100644 --- a/data/property/simple_flip_flop_instance.pp +++ b/data/property/test-case/fast.pp diff --git a/data/property/test-case/fast.pro b/data/property/test-case/fast.pro new file mode 100644 index 0000000..10bc135 --- /dev/null +++ b/data/property/test-case/fast.pro @@ -0,0 +1,57 @@ +(tag_existing + ( + (ent entity STRUCT_ENTITY) + (reg waveform STRUCT_SIMPLE_FLIP_FLOP_OUTPUT) + (clk waveform STRUCT_SIMPLE_FLIP_FLOP_CLOCK) + (ps process STRUCT_SIMPLE_FLIP_FLOP_PROCESS) + ) + (and + (not (eq reg clk)) + (is_explicit_process ps) + ;; debt: )) + ;; Get ps instance + (exists i_ps ps_instance + (and + (is_visible_in i_ps ent) + (is_ps_instance_of i_ps ps) + ;; debt: )) )) + ;; Get a local waveform matching a clk instance + (exists i_clk wfm_instance + (and + (process_instance_maps i_ps i_clk _) + ;; (is_visible_in i_clk ent) + (is_wfm_instance_of i_clk clk) + (exists local_clk waveform + (and + (process_instance_maps i_ps i_clk local_clk) + (is_in_sensitivity_list local_clk ps) + ;; debt: )))) )))) + ;; Get a local waveform matching a reg instance + (exists i_reg wfm_instance + (and + (process_instance_maps i_ps i_reg _) + ;; (is_visible_in i_reg ent) + (is_wfm_instance_of i_reg reg) + (exists local_reg waveform + (and + (process_instance_maps i_ps i_reg local_reg) + ;; debt: )))) )))))))) + ;; Analyze ps using the local waveforms + (CTL_verifies ps + (AF + ;; using local_clk or local_reg here makes the property take forever to verify.... + (kind "if") + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) +) diff --git a/data/property/test-case/slow.pp b/data/property/test-case/slow.pp new file mode 100644 index 0000000..b460eec --- /dev/null +++ b/data/property/test-case/slow.pp @@ -0,0 +1,6 @@ +The component described by the entity $ent.IDENTIFIER$ (declared in $ent.FILE$, +line $ent.LINE$, column $ent.COLUMN$) has a simple flip-flop described by the +process $ps.LABEL$ (declared in $ps.FILE$, l. $ps.LINE$, c. $ps.COLUMN$), +controlled by $clk.IDENTIFIER$ (declared in $clk.FILE$, l. $clk.LINE$, +c. $clk.COLUMN$), and with output $reg.IDENTIFIER$ (declared in $reg.FILE$, +l. $reg.LINE$, c. $reg.COLUMN$). diff --git a/data/property/test-case/slow.pro b/data/property/test-case/slow.pro new file mode 100644 index 0000000..2566a6f --- /dev/null +++ b/data/property/test-case/slow.pro @@ -0,0 +1,60 @@ +(tag_existing + ( + (ent entity STRUCT_ENTITY) + (reg waveform STRUCT_SIMPLE_FLIP_FLOP_OUTPUT) + (clk waveform STRUCT_SIMPLE_FLIP_FLOP_CLOCK) + (ps process STRUCT_SIMPLE_FLIP_FLOP_PROCESS) + ) + (and + (not (eq reg clk)) + (is_explicit_process ps) + ;; debt: )) + ;; Get ps instance + (exists i_ps ps_instance + (and + (is_visible_in i_ps ent) + (is_ps_instance_of i_ps ps) + ;; debt: )) )) + ;; Get a local waveform matching a clk instance + (exists i_clk wfm_instance + (and + (process_instance_maps i_ps i_clk _) + ;; (is_visible_in i_clk ent) + (is_wfm_instance_of i_clk clk) + (exists local_clk waveform + (and + (process_instance_maps i_ps i_clk local_clk) + (is_in_sensitivity_list local_clk ps) + ;; debt: )))) )))) + ;; Get a local waveform matching a reg instance + (exists i_reg wfm_instance + (and + (process_instance_maps i_ps i_reg _) + ;; (is_visible_in i_reg ent) + (is_wfm_instance_of i_reg reg) + (exists local_reg waveform + (and + (process_instance_maps i_ps i_reg local_reg) + ;; debt: )))) )))))))) + ;; Analyze ps using the local waveforms + (CTL_verifies ps + (AF + ;; using local_clk or local_reg here makes the property take forever to verify.... + (and + (kind "if") + (is_read_element "1" local_clk) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) +) |


