aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Gilbert <bgilbert@backtick.net>2024-04-27 06:32:11 -0500
committerJussi Pakkanen <jpakkane@gmail.com>2024-07-10 21:39:28 +0300
commit2ad1113b7ebf09c08ae6df89e1e8d8bf1960a24a (patch)
tree4a7f33e0b14cb9546a74ce2d052660d5afd67502
parent43bcaacfc9f6ed6217d2b4e3956fa3cffc207998 (diff)
downloadmeson-2ad1113b7ebf09c08ae6df89e1e8d8bf1960a24a.zip
meson-2ad1113b7ebf09c08ae6df89e1e8d8bf1960a24a.tar.gz
meson-2ad1113b7ebf09c08ae6df89e1e8d8bf1960a24a.tar.bz2
tests: add werror tests for several languages
-rw-r--r--test cases/failing build/10 nasm werror/meson.build8
-rw-r--r--test cases/failing build/10 nasm werror/test.asm8
-rw-r--r--test cases/failing build/11 objc werror/meson.build5
-rw-r--r--test cases/failing build/11 objc werror/test.m5
-rw-r--r--test cases/failing build/12 objcpp werror/meson.build5
-rw-r--r--test cases/failing build/12 objcpp werror/test.mm8
-rw-r--r--test cases/failing build/13 rust werror/meson.build8
-rw-r--r--test cases/failing build/13 rust werror/test.rs4
-rw-r--r--test cases/failing build/14 swift werror/meson.build5
-rw-r--r--test cases/failing build/14 swift werror/test.swift2
-rw-r--r--test cases/failing build/5 c werror/meson.build2
-rw-r--r--test cases/failing build/5 c werror/test.c3
-rw-r--r--test cases/failing build/6 cpp werror/meson.build2
-rw-r--r--test cases/failing build/6 cpp werror/test.cpp3
-rw-r--r--test cases/failing build/7 csharp werror/meson.build8
-rw-r--r--test cases/failing build/7 csharp werror/test.cs8
-rw-r--r--test cases/failing build/8 fortran werror/meson.build5
-rw-r--r--test cases/failing build/8 fortran werror/test.f904
-rw-r--r--test cases/failing build/9 java werror/Test.java5
-rw-r--r--test cases/failing build/9 java werror/meson.build8
20 files changed, 106 insertions, 0 deletions
diff --git a/test cases/failing build/10 nasm werror/meson.build b/test cases/failing build/10 nasm werror/meson.build
new file mode 100644
index 0000000..d0c056a
--- /dev/null
+++ b/test cases/failing build/10 nasm werror/meson.build
@@ -0,0 +1,8 @@
+project('test', default_options: ['werror=true'])
+if meson.backend().startswith('vs')
+ error('MESON_SKIP_TEST: VS backend does not recognise NASM yet')
+endif
+if not add_languages('nasm', required: false)
+ error('MESON_SKIP_TEST: nasm not found')
+endif
+executable('prog', 'test.asm')
diff --git a/test cases/failing build/10 nasm werror/test.asm b/test cases/failing build/10 nasm werror/test.asm
new file mode 100644
index 0000000..2f7a7d6
--- /dev/null
+++ b/test cases/failing build/10 nasm werror/test.asm
@@ -0,0 +1,8 @@
+SECTION .text
+global main
+main:
+ mov ebx,0
+ mov eax,1
+ int 0x80
+
+%warning oops
diff --git a/test cases/failing build/11 objc werror/meson.build b/test cases/failing build/11 objc werror/meson.build
new file mode 100644
index 0000000..9f8e478
--- /dev/null
+++ b/test cases/failing build/11 objc werror/meson.build
@@ -0,0 +1,5 @@
+project('test', default_options: ['werror=true'])
+if not add_languages('objc', required: false)
+ error('MESON_SKIP_TEST: Objective C not found')
+endif
+executable('prog', 'test.m')
diff --git a/test cases/failing build/11 objc werror/test.m b/test cases/failing build/11 objc werror/test.m
new file mode 100644
index 0000000..b03db46
--- /dev/null
+++ b/test cases/failing build/11 objc werror/test.m
@@ -0,0 +1,5 @@
+#import<stdio.h>
+
+int main(void) {
+ return 1 / 0;
+}
diff --git a/test cases/failing build/12 objcpp werror/meson.build b/test cases/failing build/12 objcpp werror/meson.build
new file mode 100644
index 0000000..5bc9bee
--- /dev/null
+++ b/test cases/failing build/12 objcpp werror/meson.build
@@ -0,0 +1,5 @@
+project('test', default_options: ['werror=true'])
+if not add_languages('objcpp', required: false)
+ error('MESON_SKIP_TEST: Objective C++ not found')
+endif
+executable('prog', 'test.mm')
diff --git a/test cases/failing build/12 objcpp werror/test.mm b/test cases/failing build/12 objcpp werror/test.mm
new file mode 100644
index 0000000..732cffa
--- /dev/null
+++ b/test cases/failing build/12 objcpp werror/test.mm
@@ -0,0 +1,8 @@
+#import<stdio.h>
+
+class MyClass {
+};
+
+int main(void) {
+ return 1 / 0;
+}
diff --git a/test cases/failing build/13 rust werror/meson.build b/test cases/failing build/13 rust werror/meson.build
new file mode 100644
index 0000000..fd11de1
--- /dev/null
+++ b/test cases/failing build/13 rust werror/meson.build
@@ -0,0 +1,8 @@
+project('test', default_options: ['werror=true'])
+if meson.backend() != 'ninja'
+ error('MESON_SKIP_TEST: Rust requires Ninja backend')
+endif
+if not add_languages('rust', required: false)
+ error('MESON_SKIP_TEST: Rust not found')
+endif
+executable('prog', 'test.rs')
diff --git a/test cases/failing build/13 rust werror/test.rs b/test cases/failing build/13 rust werror/test.rs
new file mode 100644
index 0000000..c0e4223
--- /dev/null
+++ b/test cases/failing build/13 rust werror/test.rs
@@ -0,0 +1,4 @@
+#[warn(unconditional_panic)]
+fn main() {
+ println!("Hello, world {}!", 1 / 0);
+}
diff --git a/test cases/failing build/14 swift werror/meson.build b/test cases/failing build/14 swift werror/meson.build
new file mode 100644
index 0000000..1d82751
--- /dev/null
+++ b/test cases/failing build/14 swift werror/meson.build
@@ -0,0 +1,5 @@
+project('test', default_options: ['werror=true'])
+if not add_languages('swift', required: false)
+ error('MESON_SKIP_TEST: Swift not found')
+endif
+executable('prog', 'test.swift')
diff --git a/test cases/failing build/14 swift werror/test.swift b/test cases/failing build/14 swift werror/test.swift
new file mode 100644
index 0000000..b569811
--- /dev/null
+++ b/test cases/failing build/14 swift werror/test.swift
@@ -0,0 +1,2 @@
+#warning("oops")
+print("Hello, World!")
diff --git a/test cases/failing build/5 c werror/meson.build b/test cases/failing build/5 c werror/meson.build
new file mode 100644
index 0000000..ff6026a
--- /dev/null
+++ b/test cases/failing build/5 c werror/meson.build
@@ -0,0 +1,2 @@
+project('test', 'c', default_options: ['werror=true'])
+executable('prog', 'test.c')
diff --git a/test cases/failing build/5 c werror/test.c b/test cases/failing build/5 c werror/test.c
new file mode 100644
index 0000000..f0b7f0b
--- /dev/null
+++ b/test cases/failing build/5 c werror/test.c
@@ -0,0 +1,3 @@
+int main(int argc, char **argv) {
+ return 1 / 0;
+}
diff --git a/test cases/failing build/6 cpp werror/meson.build b/test cases/failing build/6 cpp werror/meson.build
new file mode 100644
index 0000000..0d1c4c5
--- /dev/null
+++ b/test cases/failing build/6 cpp werror/meson.build
@@ -0,0 +1,2 @@
+project('test', 'cpp', default_options: ['werror=true'])
+executable('prog', 'test.cpp')
diff --git a/test cases/failing build/6 cpp werror/test.cpp b/test cases/failing build/6 cpp werror/test.cpp
new file mode 100644
index 0000000..f0b7f0b
--- /dev/null
+++ b/test cases/failing build/6 cpp werror/test.cpp
@@ -0,0 +1,3 @@
+int main(int argc, char **argv) {
+ return 1 / 0;
+}
diff --git a/test cases/failing build/7 csharp werror/meson.build b/test cases/failing build/7 csharp werror/meson.build
new file mode 100644
index 0000000..8e73c6a
--- /dev/null
+++ b/test cases/failing build/7 csharp werror/meson.build
@@ -0,0 +1,8 @@
+project('test', default_options: ['werror=true'])
+if meson.backend() != 'ninja'
+ error('MESON_SKIP_TEST: C# requires Ninja backend')
+endif
+if not add_languages('cs', required: false)
+ error('MESON_SKIP_TEST: C# not found')
+endif
+executable('prog', 'test.cs')
diff --git a/test cases/failing build/7 csharp werror/test.cs b/test cases/failing build/7 csharp werror/test.cs
new file mode 100644
index 0000000..262f4d1
--- /dev/null
+++ b/test cases/failing build/7 csharp werror/test.cs
@@ -0,0 +1,8 @@
+namespace HelloWorld {
+ class Hello {
+ static void Main(string[] args) {
+ int w = 0; // unused
+ System.Console.WriteLine("Hello World!");
+ }
+ }
+}
diff --git a/test cases/failing build/8 fortran werror/meson.build b/test cases/failing build/8 fortran werror/meson.build
new file mode 100644
index 0000000..9cccbec
--- /dev/null
+++ b/test cases/failing build/8 fortran werror/meson.build
@@ -0,0 +1,5 @@
+project('test', default_options: ['warning_level=3', 'werror=true'])
+if not add_languages('fortran', required: false)
+ error('MESON_SKIP_TEST: Fortran not found')
+endif
+executable('prog', 'test.f90')
diff --git a/test cases/failing build/8 fortran werror/test.f90 b/test cases/failing build/8 fortran werror/test.f90
new file mode 100644
index 0000000..78edb8d
--- /dev/null
+++ b/test cases/failing build/8 fortran werror/test.f90
@@ -0,0 +1,4 @@
+program main
+integer :: i
+print *, ii
+end program
diff --git a/test cases/failing build/9 java werror/Test.java b/test cases/failing build/9 java werror/Test.java
new file mode 100644
index 0000000..3bfb2d0
--- /dev/null
+++ b/test cases/failing build/9 java werror/Test.java
@@ -0,0 +1,5 @@
+public class Test {
+ public static void main(String args[]) {
+ System.out.println(1 / 0);
+ }
+}
diff --git a/test cases/failing build/9 java werror/meson.build b/test cases/failing build/9 java werror/meson.build
new file mode 100644
index 0000000..3923259
--- /dev/null
+++ b/test cases/failing build/9 java werror/meson.build
@@ -0,0 +1,8 @@
+project('test', default_options: ['werror=true'])
+if meson.backend() != 'ninja'
+ error('MESON_SKIP_TEST: Java requires Ninja backend')
+endif
+if not add_languages('java', required: false)
+ error('MESON_SKIP_TEST: Java not found')
+endif
+jar('prog', 'Test.java')