summaryrefslogtreecommitdiffstats
path: root/test cases/objc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:41:38 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:41:38 +0000
commit7b6e527f440cd7e6f8be2b07cee320ee6ca18786 (patch)
tree4a2738d69fa2814659fdadddf5826282e73d81f4 /test cases/objc
parentInitial commit. (diff)
downloadmeson-upstream.tar.xz
meson-upstream.zip
Adding upstream version 1.0.1.upstream/1.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--test cases/objc/1 simple/meson.build4
-rw-r--r--test cases/objc/1 simple/prog.m5
-rw-r--r--test cases/objc/2 nsstring/meson.build20
-rw-r--r--test cases/objc/2 nsstring/stringprog.m9
-rw-r--r--test cases/objc/3 objc args/meson.build4
-rw-r--r--test cases/objc/3 objc args/prog.m11
-rw-r--r--test cases/objc/4 c++ project objc subproject/master.cpp11
-rw-r--r--test cases/objc/4 c++ project objc subproject/meson.build6
-rw-r--r--test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m4
-rw-r--r--test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build5
-rw-r--r--test cases/objcpp/1 simple/meson.build4
-rw-r--r--test cases/objcpp/1 simple/prog.mm8
-rw-r--r--test cases/objcpp/2 objc++ args/meson.build4
-rw-r--r--test cases/objcpp/2 objc++ args/prog.mm16
14 files changed, 111 insertions, 0 deletions
diff --git a/test cases/objc/1 simple/meson.build b/test cases/objc/1 simple/meson.build
new file mode 100644
index 0000000..f9d5c14
--- /dev/null
+++ b/test cases/objc/1 simple/meson.build
@@ -0,0 +1,4 @@
+project('objective c', 'objc', default_options: ['c_std=c99'])
+
+exe = executable('prog', 'prog.m')
+test('objctest', exe)
diff --git a/test cases/objc/1 simple/prog.m b/test cases/objc/1 simple/prog.m
new file mode 100644
index 0000000..87457bf
--- /dev/null
+++ b/test cases/objc/1 simple/prog.m
@@ -0,0 +1,5 @@
+#import<stdio.h>
+
+int main(void) {
+ return 0;
+} \ No newline at end of file
diff --git a/test cases/objc/2 nsstring/meson.build b/test cases/objc/2 nsstring/meson.build
new file mode 100644
index 0000000..94d2cf1
--- /dev/null
+++ b/test cases/objc/2 nsstring/meson.build
@@ -0,0 +1,20 @@
+project('nsstring', 'objc')
+
+if host_machine.system() == 'darwin'
+ dep = dependency('appleframeworks', modules : 'foundation')
+elif host_machine.system() == 'cygwin'
+ error('MESON_SKIP_TEST GNUstep is not packaged for Cygwin.')
+else
+ dep = dependency('gnustep', required : false)
+ if not dep.found()
+ error('MESON_SKIP_TEST: GNUstep is not installed')
+ endif
+ if host_machine.system() == 'linux' and meson.get_compiler('objc').get_id() == 'clang'
+ error('MESON_SKIP_TEST: GNUstep is broken on Linux with Clang')
+ endif
+endif
+exe = executable('stringprog', 'stringprog.m', dependencies : dep)
+test('stringtest', exe)
+
+# Ensure that a non-required dep that is not found does not cause an error
+dependency('appleframeworks', modules: 'nonexisting', required: false)
diff --git a/test cases/objc/2 nsstring/stringprog.m b/test cases/objc/2 nsstring/stringprog.m
new file mode 100644
index 0000000..5407538
--- /dev/null
+++ b/test cases/objc/2 nsstring/stringprog.m
@@ -0,0 +1,9 @@
+#import<Foundation/NSString.h>
+
+int main(void) {
+ int result;
+ NSString *str = [NSString new];
+ result = [str length];
+ [str release];
+ return result;
+}
diff --git a/test cases/objc/3 objc args/meson.build b/test cases/objc/3 objc args/meson.build
new file mode 100644
index 0000000..8887d96
--- /dev/null
+++ b/test cases/objc/3 objc args/meson.build
@@ -0,0 +1,4 @@
+project('objective c args', 'objc')
+
+exe = executable('prog', 'prog.m', objc_args : ['-DMESON_TEST'])
+test('objective c args', exe)
diff --git a/test cases/objc/3 objc args/prog.m b/test cases/objc/3 objc args/prog.m
new file mode 100644
index 0000000..003df98
--- /dev/null
+++ b/test cases/objc/3 objc args/prog.m
@@ -0,0 +1,11 @@
+#import<stdio.h>
+
+int main(void)
+{
+#ifdef MESON_TEST
+ int x = 3;
+#endif
+
+ printf("x = %d\n", x);
+ return 0;
+}
diff --git a/test cases/objc/4 c++ project objc subproject/master.cpp b/test cases/objc/4 c++ project objc subproject/master.cpp
new file mode 100644
index 0000000..cd08fb1
--- /dev/null
+++ b/test cases/objc/4 c++ project objc subproject/master.cpp
@@ -0,0 +1,11 @@
+
+#include <iostream>
+
+extern "C"
+int foo();
+
+int main(void) {
+ std::cout << "Starting\n";
+ std::cout << foo() << "\n";
+ return 0;
+}
diff --git a/test cases/objc/4 c++ project objc subproject/meson.build b/test cases/objc/4 c++ project objc subproject/meson.build
new file mode 100644
index 0000000..8a77ded
--- /dev/null
+++ b/test cases/objc/4 c++ project objc subproject/meson.build
@@ -0,0 +1,6 @@
+project('master', ['cpp'])
+
+foo = subproject('foo')
+dep = foo.get_variable('foo_dep')
+
+executable('master', 'master.cpp', dependencies: dep)
diff --git a/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m b/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m
new file mode 100644
index 0000000..e193b86
--- /dev/null
+++ b/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m
@@ -0,0 +1,4 @@
+
+int foo() {
+ return 42;
+}
diff --git a/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build b/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build
new file mode 100644
index 0000000..2dbf8ab
--- /dev/null
+++ b/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build
@@ -0,0 +1,5 @@
+project('foo', ['objc'])
+
+l = static_library('foo', 'foo.m')
+
+foo_dep = declare_dependency(link_with : l)
diff --git a/test cases/objcpp/1 simple/meson.build b/test cases/objcpp/1 simple/meson.build
new file mode 100644
index 0000000..c9a5c84
--- /dev/null
+++ b/test cases/objcpp/1 simple/meson.build
@@ -0,0 +1,4 @@
+project('Objective C++', 'objcpp', default_options: 'cpp_std=c++14')
+
+exe = executable('objcppprog', 'prog.mm')
+test('objcpp', exe)
diff --git a/test cases/objcpp/1 simple/prog.mm b/test cases/objcpp/1 simple/prog.mm
new file mode 100644
index 0000000..b26d5b7
--- /dev/null
+++ b/test cases/objcpp/1 simple/prog.mm
@@ -0,0 +1,8 @@
+#import<stdio.h>
+
+class MyClass {
+};
+
+int main(void) {
+ return 0;
+}
diff --git a/test cases/objcpp/2 objc++ args/meson.build b/test cases/objcpp/2 objc++ args/meson.build
new file mode 100644
index 0000000..e0e34b0
--- /dev/null
+++ b/test cases/objcpp/2 objc++ args/meson.build
@@ -0,0 +1,4 @@
+project('objective c++ args', 'objcpp')
+
+exe = executable('prog', 'prog.mm', objcpp_args : ['-DMESON_OBJCPP_TEST'])
+test('objective c++ args', exe)
diff --git a/test cases/objcpp/2 objc++ args/prog.mm b/test cases/objcpp/2 objc++ args/prog.mm
new file mode 100644
index 0000000..2b437ce
--- /dev/null
+++ b/test cases/objcpp/2 objc++ args/prog.mm
@@ -0,0 +1,16 @@
+#import<stdio.h>
+
+class TestClass
+{
+};
+
+int main(void)
+{
+#ifdef MESON_OBJCPP_TEST
+int x = 1;
+#endif
+
+ printf("x = %x\n", x);
+
+ return 0;
+}