From 3532bc0bbc9015de6d1734ecaf9240b389a5a1e7 Mon Sep 17 00:00:00 2001 From: Alasdair Date: Fri, 1 Feb 2019 21:51:02 +0000 Subject: Add test cases for integer synonyms --- test/c/nexp_synonym.expect | 1 + test/c/nexp_synonym.sail | 11 +++++++++++ test/typecheck/pass/nexp_synonym.sail | 11 +++++++++++ test/typecheck/pass/nexp_synonym/v1.expect | 8 ++++++++ test/typecheck/pass/nexp_synonym/v1.sail | 11 +++++++++++ test/typecheck/pass/nexp_synonym/v2.expect | 8 ++++++++ test/typecheck/pass/nexp_synonym/v2.sail | 11 +++++++++++ test/typecheck/pass/nexp_synonym2.sail | 15 +++++++++++++++ 8 files changed, 76 insertions(+) create mode 100644 test/c/nexp_synonym.expect create mode 100644 test/c/nexp_synonym.sail create mode 100644 test/typecheck/pass/nexp_synonym.sail create mode 100644 test/typecheck/pass/nexp_synonym/v1.expect create mode 100644 test/typecheck/pass/nexp_synonym/v1.sail create mode 100644 test/typecheck/pass/nexp_synonym/v2.expect create mode 100644 test/typecheck/pass/nexp_synonym/v2.sail create mode 100644 test/typecheck/pass/nexp_synonym2.sail diff --git a/test/c/nexp_synonym.expect b/test/c/nexp_synonym.expect new file mode 100644 index 00000000..880c3ee3 --- /dev/null +++ b/test/c/nexp_synonym.expect @@ -0,0 +1 @@ +v = 0xFFFFFFFF diff --git a/test/c/nexp_synonym.sail b/test/c/nexp_synonym.sail new file mode 100644 index 00000000..b908b265 --- /dev/null +++ b/test/c/nexp_synonym.sail @@ -0,0 +1,11 @@ +default Order dec + +$include + +type LEN : Int = 32 + +let v : bits(LEN) = 0xFFFF_FFFF + +function main((): unit) -> unit = { + print_bits("v = ", v) +} \ No newline at end of file diff --git a/test/typecheck/pass/nexp_synonym.sail b/test/typecheck/pass/nexp_synonym.sail new file mode 100644 index 00000000..b908b265 --- /dev/null +++ b/test/typecheck/pass/nexp_synonym.sail @@ -0,0 +1,11 @@ +default Order dec + +$include + +type LEN : Int = 32 + +let v : bits(LEN) = 0xFFFF_FFFF + +function main((): unit) -> unit = { + print_bits("v = ", v) +} \ No newline at end of file diff --git a/test/typecheck/pass/nexp_synonym/v1.expect b/test/typecheck/pass/nexp_synonym/v1.expect new file mode 100644 index 00000000..9ba21c2c --- /dev/null +++ b/test/typecheck/pass/nexp_synonym/v1.expect @@ -0,0 +1,8 @@ +Type error: +[nexp_synonym/v1.sail]:7:20-31 +7 |let v : bits(LEN) = 0xFFFF_FFFF +  | ^---------^ +  | Tried performing type coercion from vector(32, dec, bit) to bits(LEN) on 0xFFFFFFFF +  | Coercion failed because: +  | Mismatched argument types in subtype check +  | diff --git a/test/typecheck/pass/nexp_synonym/v1.sail b/test/typecheck/pass/nexp_synonym/v1.sail new file mode 100644 index 00000000..96690e00 --- /dev/null +++ b/test/typecheck/pass/nexp_synonym/v1.sail @@ -0,0 +1,11 @@ +default Order dec + +$include + +type LEN : Int = 33 + +let v : bits(LEN) = 0xFFFF_FFFF + +function main((): unit) -> unit = { + print_bits("v = ", v) +} diff --git a/test/typecheck/pass/nexp_synonym/v2.expect b/test/typecheck/pass/nexp_synonym/v2.expect new file mode 100644 index 00000000..68d664f7 --- /dev/null +++ b/test/typecheck/pass/nexp_synonym/v2.expect @@ -0,0 +1,8 @@ +Type error: +[nexp_synonym/v2.sail]:7:20-32 +7 |let v : bits(LEN) = 0xFFFF_FFFFF +  | ^----------^ +  | Tried performing type coercion from vector(36, dec, bit) to bits(LEN) on 0xFFFFFFFFF +  | Coercion failed because: +  | Mismatched argument types in subtype check +  | diff --git a/test/typecheck/pass/nexp_synonym/v2.sail b/test/typecheck/pass/nexp_synonym/v2.sail new file mode 100644 index 00000000..0c1b5b5b --- /dev/null +++ b/test/typecheck/pass/nexp_synonym/v2.sail @@ -0,0 +1,11 @@ +default Order dec + +$include + +type LEN : Int = 32 + +let v : bits(LEN) = 0xFFFF_FFFFF + +function main((): unit) -> unit = { + print_bits("v = ", v) +} diff --git a/test/typecheck/pass/nexp_synonym2.sail b/test/typecheck/pass/nexp_synonym2.sail new file mode 100644 index 00000000..9e9bd7b8 --- /dev/null +++ b/test/typecheck/pass/nexp_synonym2.sail @@ -0,0 +1,15 @@ +default Order dec + +$include + +type LEN : Int = 30 + 2 + +type V : Type = bits(LEN) + +type V2('n: Int) -> Type = bits('n) + +let v : V = 0xFFFF_FFFF + +function main((): unit) -> unit = { + print_bits("v = ", v : V2(LEN)) +} -- cgit v1.2.3