Add a test for generated LLVM IR files

pull/1320/head
Nirbheek Chauhan 8 years ago
parent 11f9425a5e
commit f934598865
  1. 6
      test cases/common/134 generated llvm ir/copy.py
  2. 14
      test cases/common/134 generated llvm ir/main.c
  3. 24
      test cases/common/134 generated llvm ir/meson.build
  4. 4
      test cases/common/134 generated llvm ir/square.ll.in

@ -0,0 +1,6 @@
#!/usr/bin/env python
import sys
import shutil
shutil.copyfile(sys.argv[1], sys.argv[2])

@ -0,0 +1,14 @@
#include <stdio.h>
unsigned square_unsigned (unsigned a);
int
main (int argc, char * argv[])
{
unsigned int ret = square_unsigned (2);
if (ret != 4) {
printf("Got %u instead of 4\n", ret);
return 1;
}
return 0;
}

@ -0,0 +1,24 @@
project('generated llvm ir', 'c')
if meson.get_compiler('c').get_id() != 'clang'
error('MESON_SKIP_TEST: LLVM IR files can only be built with clang')
endif
copy = find_program('copy.py')
copygen = generator(copy,
arguments : ['@INPUT@', '@OUTPUT@'],
output : '@BASENAME@')
l = shared_library('square-gen', copygen.process('square.ll.in'))
test('square-gen-test', executable('square-gen-test', 'main.c', link_with : l))
copyct = custom_target('square',
input : 'square.ll.in',
output : 'square.ll',
command : [copy, '@INPUT@', '@OUTPUT@'])
l = shared_library('square-ct', copyct)
test('square-ct-test', executable('square-ct-test', 'main.c', link_with : l))

@ -0,0 +1,4 @@
define i32 @square_unsigned(i32 %a) {
%1 = mul i32 %a, %a
ret i32 %1
}
Loading…
Cancel
Save