please review - llvm test-suite patch

reed kotler rkotler at mips.com
Sat Jun 8 22:47:22 PDT 2013


This patch is to allow areas in SingleSource and MultiSource for Mips 
specific tests to be added to UnitTests in those areas.

Some example tests are included in the patch.

I have tested with x86 and Mips test suites and for Mips with lnt.

Am rerunning all tests this weekend.


-------------- next part --------------
diff --git a/MultiSource/Makefile b/MultiSource/Makefile
index 7641628..8680601 100644
--- a/MultiSource/Makefile
+++ b/MultiSource/Makefile
@@ -2,4 +2,10 @@
 
 LEVEL = ..
 PARALLEL_DIRS  := Applications Benchmarks
+# For now only Mips uses UnitTests
+ifeq ($(ARCH),Mips)
+PARALLEL_DIRS += UnitTests
+endif
+
 include $(LEVEL)/Makefile.programs
+
diff --git a/MultiSource/UnitTests/Makefile b/MultiSource/UnitTests/Makefile
new file mode 100644
index 0000000..d5f219f
--- /dev/null
+++ b/MultiSource/UnitTests/Makefile
@@ -0,0 +1,13 @@
+# MultiSource/UnitTests Makefile:  Build all subdirectories automatically
+
+LEVEL = ../..
+
+PARALLEL_DIRS =
+
+# Add special tests for Mips
+ifeq ($(ARCH),Mips)
+PARALLEL_DIRS += Mips
+endif
+
+include $(LEVEL)/Makefile.config
+include $(LEVEL)/Makefile.programs
diff --git a/MultiSource/UnitTests/Mips/Makefile b/MultiSource/UnitTests/Mips/Makefile
new file mode 100644
index 0000000..f52f860
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Makefile
@@ -0,0 +1,13 @@
+# MultiSource/UnitTests/Mips Makefile:  Build all subdirectories automatically
+
+LEVEL = ../../..
+
+PARALLEL_DIRS :=
+
+# Add special tests for Mips
+ifneq (,$(findstring mips16,$(MIPSARCH)))
+PARALLEL_DIRS += Mips16
+endif
+
+include $(LEVEL)/Makefile.config
+include $(LEVEL)/Makefile.programs
diff --git a/MultiSource/UnitTests/Mips/Mips16/Makefile b/MultiSource/UnitTests/Mips/Mips16/Makefile
new file mode 100644
index 0000000..811bc04
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/Makefile
@@ -0,0 +1,6 @@
+LEVEL = ../../../..
+
+PARALLEL_DIRS += multitest fp16_32_1
+
+
+include $(LEVEL)/Makefile.programs
diff --git a/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/Makefile b/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/Makefile
new file mode 100644
index 0000000..7733805
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/Makefile
@@ -0,0 +1,5 @@
+LEVEL = ../../../../..
+PROG = fp16_32_1
+CPPFLAGS = 
+LDFLAGS =
+include ../../../../Makefile.multisrc
\ No newline at end of file
diff --git a/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp16_1.c b/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp16_1.c
new file mode 100644
index 0000000..fcb6151
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp16_1.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+extern void foo32(float x);
+
+int __attribute__((mips16)) main() {
+  foo32(4.5678);
+  printf("main  \n");
+  return 0;
+}
diff --git a/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp16_32_1.reference_output b/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp16_32_1.reference_output
new file mode 100644
index 0000000..105a44e
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp16_32_1.reference_output
@@ -0,0 +1,3 @@
+in foo32: 4.567800 
+main  
+exit 0
diff --git a/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp32_1.c b/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp32_1.c
new file mode 100644
index 0000000..3af70a0
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/fp16_32_1/fp32_1.c
@@ -0,0 +1,4 @@
+#include <stdio.h>
+void __attribute__((nomips16)) foo32(float x) {
+  printf("in foo32: %f \n", x);
+}
diff --git a/MultiSource/UnitTests/Mips/Mips16/multitest/Makefile b/MultiSource/UnitTests/Mips/Mips16/multitest/Makefile
new file mode 100644
index 0000000..92f975f
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/multitest/Makefile
@@ -0,0 +1,5 @@
+LEVEL = ../../../../..
+PROG = multitest
+CPPFLAGS = 
+LDFLAGS =
+include ../../../../Makefile.multisrc
\ No newline at end of file
diff --git a/MultiSource/UnitTests/Mips/Mips16/multitest/do_print.c b/MultiSource/UnitTests/Mips/Mips16/multitest/do_print.c
new file mode 100644
index 0000000..fe4e38d
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/multitest/do_print.c
@@ -0,0 +1,4 @@
+#include <stdio.h>
+void do_print() {
+  printf("do print called\n");
+}
diff --git a/MultiSource/UnitTests/Mips/Mips16/multitest/multitest.c b/MultiSource/UnitTests/Mips/Mips16/multitest/multitest.c
new file mode 100644
index 0000000..0aff360
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/multitest/multitest.c
@@ -0,0 +1,6 @@
+extern void do_print();
+
+int main() {
+  do_print();
+  return 0;
+}
diff --git a/MultiSource/UnitTests/Mips/Mips16/multitest/multitest.reference_output b/MultiSource/UnitTests/Mips/Mips16/multitest/multitest.reference_output
new file mode 100644
index 0000000..0312115
--- /dev/null
+++ b/MultiSource/UnitTests/Mips/Mips16/multitest/multitest.reference_output
@@ -0,0 +1,2 @@
+do print called
+exit 0
diff --git a/SingleSource/UnitTests/Makefile b/SingleSource/UnitTests/Makefile
index 0276495..3e279c1 100644
--- a/SingleSource/UnitTests/Makefile
+++ b/SingleSource/UnitTests/Makefile
@@ -33,5 +33,10 @@ ifneq ($(ARCH),x86_64)
 PROGRAMS_TO_SKIP += ms_struct-bitfield-init-1 ms_struct-bitfield-init ms_struct-bitfield ms_struct_pack_layout-1 ms_struct_pack_layout ms_struct-bitfield-1
 endif
 
+# Add special tests for Mips
+ifeq ($(ARCH),Mips)
+DIRS += Mips
+endif
+
 LDFLAGS += -lstdc++
 include $(LEVEL)/SingleSource/Makefile.singlesrc
diff --git a/SingleSource/UnitTests/Mips/Makefile b/SingleSource/UnitTests/Mips/Makefile
new file mode 100644
index 0000000..1a332a6
--- /dev/null
+++ b/SingleSource/UnitTests/Mips/Makefile
@@ -0,0 +1,9 @@
+# SingleSource/UnitTests/Mips/Makefile
+LEVEL = ../../..
+
+ifneq (,$(findstring mips16,$(MIPSARCH)))
+PARALLEL_DIRS += Mips16
+endif
+
+include $(LEVEL)/SingleSource/Makefile.singlesrc
+
diff --git a/SingleSource/UnitTests/Mips/Mips16/Makefile b/SingleSource/UnitTests/Mips/Mips16/Makefile
new file mode 100644
index 0000000..1b3cb9b
--- /dev/null
+++ b/SingleSource/UnitTests/Mips/Mips16/Makefile
@@ -0,0 +1,8 @@
+# SingleSource/UnitTests/Mips/Mips16/Makefile
+
+DIRS = 
+LEVEL = ../../../..
+
+
+include $(LEVEL)/SingleSource/Makefile.singlesrc
+
diff --git a/SingleSource/UnitTests/Mips/Mips16/mips16_32_4.c b/SingleSource/UnitTests/Mips/Mips16/mips16_32_4.c
new file mode 100644
index 0000000..792fa48
--- /dev/null
+++ b/SingleSource/UnitTests/Mips/Mips16/mips16_32_4.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+void __attribute__((mips16)) foo (void) {
+  printf("in foo: mips16\n");
+}
+void __attribute__((nomips16)) nofoo (void) {
+  printf("in foo: mips32\n");
+}
+
+int __attribute__((mips16)) main() {
+  foo();
+  nofoo();
+  printf("in main: mips16\n");
+}
+
+
diff --git a/SingleSource/UnitTests/Mips/Mips16/mips16_32_4.reference_output b/SingleSource/UnitTests/Mips/Mips16/mips16_32_4.reference_output
new file mode 100644
index 0000000..acfb626
--- /dev/null
+++ b/SingleSource/UnitTests/Mips/Mips16/mips16_32_4.reference_output
@@ -0,0 +1,4 @@
+in foo: mips16
+in foo: mips32
+in main: mips16
+exit 0
diff --git a/SingleSource/UnitTests/Mips/Mips16/test_makefile.c b/SingleSource/UnitTests/Mips/Mips16/test_makefile.c
new file mode 100644
index 0000000..a2e2297
--- /dev/null
+++ b/SingleSource/UnitTests/Mips/Mips16/test_makefile.c
@@ -0,0 +1,4 @@
+int main() {
+  return 0;
+}
+
diff --git a/SingleSource/UnitTests/Mips/Mips16/test_makefile.reference_output b/SingleSource/UnitTests/Mips/Mips16/test_makefile.reference_output
new file mode 100644
index 0000000..ca916d0
--- /dev/null
+++ b/SingleSource/UnitTests/Mips/Mips16/test_makefile.reference_output
@@ -0,0 +1 @@
+exit 0


More information about the llvm-commits mailing list