summaryrefslogtreecommitdiff
path: root/src/regression/compare.c
diff options
context:
space:
mode:
authorXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
committerXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
commit268a53de823a6750d6256ee1fb1e7707b4b45740 (patch)
tree42c1799a9a82b2f7d9790ee9fe181d72a7274751 /src/regression/compare.c
downloadsdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'src/regression/compare.c')
-rw-r--r--src/regression/compare.c186
1 files changed, 186 insertions, 0 deletions
diff --git a/src/regression/compare.c b/src/regression/compare.c
new file mode 100644
index 0000000..29843f4
--- /dev/null
+++ b/src/regression/compare.c
@@ -0,0 +1,186 @@
+#include "gpsim_assert.h"
+/*
+
+ PIC PORT Test code
+
+ */
+
+/*
+ compare.c test compare
+
+ */
+
+unsigned char failures = 0;
+
+unsigned char achar0 = 0;
+unsigned char achar1 = 0;
+unsigned int aint0 = 0;
+unsigned int aint1 = 0;
+
+char schar0 = 0;
+char schar1 = 0;
+
+void
+done()
+{
+ ASSERT(MANGLE(failures) == 0);
+ PASSED();
+}
+
+/* achar0 should be zero */
+
+void
+compare_char_to_lits1 (void)
+{
+
+ if (achar0)
+ failures++;
+
+ if (achar0 == 1)
+ failures++;
+
+ if (achar0 == 7)
+ failures++;
+
+ if (achar0 != 0)
+ failures++;
+}
+
+/* achar0 should be `5' */
+void
+compare_char_to_lits2 (void)
+{
+
+ if (!achar0)
+ failures++;
+
+ if (achar0 == 1)
+ failures++;
+
+ if (achar0 == 7)
+ failures++;
+
+ if (achar0 != 5)
+ failures++;
+}
+
+
+/* achar0 should equal achar1 */
+void
+compare_char_to_char1 (void)
+{
+
+ if (achar0 != achar1)
+ failures++;
+
+ if (schar0 != schar1)
+ failures++;
+}
+
+/* achar0 should be different than achar1 */
+void
+compare_char_to_char2 (void)
+{
+
+ if (achar0 == achar1)
+ failures++;
+
+}
+
+/* aint0 should be zero */
+
+void
+compare_int_to_lits1 (void)
+{
+
+ if (aint0)
+ failures++;
+
+ if (aint0 == 1)
+ failures++;
+
+ if (aint0 == 7)
+ failures++;
+
+ if (aint0 != 0)
+ failures++;
+}
+
+/* aint0 should be `5' */
+void
+compare_int_to_lits2 (void)
+{
+
+ if (!aint0)
+ failures++;
+
+ if (aint0 == 1)
+ failures++;
+
+ if (aint0 == 7)
+ failures++;
+
+ if (aint0 != 5)
+ failures++;
+}
+
+/* aint0 should be `0x1234' */
+void
+compare_int_to_lits3 (void)
+{
+
+ if (!aint0)
+ failures++;
+
+ if (aint0 == 1)
+ failures++;
+
+ if (aint0 == 7)
+ failures++;
+
+ if (aint0 != 0x1234)
+ failures++;
+}
+
+/* aint0 should equal aint1 */
+void
+compare_int_to_int1 (void)
+{
+
+ if (aint0 != aint1)
+ failures++;
+
+}
+
+/* aint0 should be different than aint1 */
+void
+compare_int_to_int2 (void)
+{
+
+ if (aint0 == aint1)
+ failures++;
+
+}
+
+void
+main (void)
+{
+
+ compare_char_to_lits1 ();
+ compare_char_to_char1 ();
+ achar0 = 5;
+ compare_char_to_lits2 ();
+ compare_char_to_char2 ();
+
+
+ compare_int_to_lits1 ();
+ aint0 = 5;
+ compare_int_to_lits2 ();
+ aint0 = 0x1234;
+ compare_int_to_lits3 ();
+ compare_int_to_int2 ();
+ aint0 = 0;
+ compare_int_to_int1 ();
+
+ done ();
+}