summaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorMathieu Duponchelle <MathieuDuponchelle@users.noreply.github.com>2018-06-01 19:53:07 +0200
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-06-01 17:53:07 +0000
commit14750b50ea9c9f53237bed59a79365e1ebbdacda (patch)
tree9497bd107cc4889bdb6daf60094bf650c1315e82 /test cases
parent17cb364046661c2d72193b4d8691070fd0fb276b (diff)
downloadmeson-14750b50ea9c9f53237bed59a79365e1ebbdacda.tar.gz
configure_file: Add output_format kwarg (#3636)
* configure_file: Add output_format kwarg * docs: Reference-manual.md output_format was added in 0.47 [skip ci]
Diffstat (limited to 'test cases')
-rw-r--r--test cases/nasm/1 configure file/hello.asm27
-rw-r--r--test cases/nasm/1 configure file/meson.build44
2 files changed, 71 insertions, 0 deletions
diff --git a/test cases/nasm/1 configure file/hello.asm b/test cases/nasm/1 configure file/hello.asm
new file mode 100644
index 000000000..4188b8dfe
--- /dev/null
+++ b/test cases/nasm/1 configure file/hello.asm
@@ -0,0 +1,27 @@
+; hello.asm a first program for nasm for Linux, Intel, gcc
+;
+; assemble: nasm -f elf -l hello.lst hello.asm
+; link: gcc -o hello hello.o
+; run: hello
+; output is: Hello World
+
+%include "config.asm"
+
+ SECTION .data ; data section
+msg: db "Hello World",10 ; the string to print, 10=cr
+len: equ $-msg ; "$" means "here"
+ ; len is a value, not an address
+
+ SECTION .text ; code section
+ global main ; make label available to linker
+main: ; standard gcc entry point
+
+ mov edx,len ; arg3, length of string to print
+ mov ecx,msg ; arg2, pointer to string
+ mov ebx,1 ; arg1, where to write, screen
+ mov eax,4 ; write sysout command to int 80 hex
+ int 0x80 ; interrupt 80 hex, call kernel
+
+ mov ebx,HELLO ; exit code, 0=normal
+ mov eax,1 ; exit command to kernel
+ int 0x80 ; interrupt 80 hex, call kernel
diff --git a/test cases/nasm/1 configure file/meson.build b/test cases/nasm/1 configure file/meson.build
new file mode 100644
index 000000000..213e11487
--- /dev/null
+++ b/test cases/nasm/1 configure file/meson.build
@@ -0,0 +1,44 @@
+project('nasm config file', 'c')
+
+if host_machine.cpu_family() == 'x86' and host_machine.system() == 'windows'
+ asm_format = 'win32'
+elif host_machine.cpu_family() == 'x86_64' and host_machine.system() == 'windows'
+ asm_format = 'win64'
+elif host_machine.cpu_family() == 'x86' and host_machine.system() == 'linux'
+ asm_format = 'elf32'
+elif host_machine.cpu_family() == 'x86_64' and host_machine.system() == 'linux'
+ asm_format = 'elf64'
+else
+ error('MESON_SKIP_TEST: skipping test on this platform')
+endif
+
+nasm = find_program('nasm', required: false)
+
+if not nasm.found()
+ error('MESON_SKIP_TEST: nasm not available')
+endif
+
+conf = configuration_data()
+
+conf.set('HELLO', 0)
+
+asm_gen = generator(nasm,
+ output : '@BASENAME@.o',
+ arguments : [
+ '-f', asm_format,
+ '-i', meson.current_source_dir() + '/',
+ '-i', join_paths(meson.current_source_dir(), ''),
+ '-P', join_paths(meson.current_build_dir(), 'config.asm'),
+ '@INPUT@',
+ '-o', '@OUTPUT@'])
+
+
+config_file = configure_file(
+ output: 'config.asm',
+ configuration: conf,
+ output_format: 'nasm',
+)
+
+exe = executable('hello', asm_gen.process('hello.asm'))
+
+test('test-nasm-configure-file', exe)