Added test case to test fix for issue 8910.

pull/8912/head
Justin Handville 4 years ago committed by Daniel Mensinger
parent e8e03cdc72
commit ee240b60b8
  1. 18
      test cases/cmake/25 assembler/main.c
  2. 9
      test cases/cmake/25 assembler/meson.build
  3. 45
      test cases/cmake/25 assembler/subprojects/cmTest/CMakeLists.txt
  4. 8
      test cases/cmake/25 assembler/subprojects/cmTest/cmTest.c
  5. 4
      test cases/cmake/25 assembler/subprojects/cmTest/cmTestAsm.s

@ -0,0 +1,18 @@
#include <stdint.h>
#include <stdio.h>
int32_t cmTestFunc();
int main(int argc, char* argv[])
{
if (cmTestFunc() > 4200)
{
printf("Test success.\n");
return 0;
}
else
{
printf("Test failure.\n");
return 1;
}
}

@ -0,0 +1,9 @@
project('assembler test', ['c'])
cm = import('cmake')
sub_pro = cm.subproject('cmTest')
sub_dep = sub_pro.dependency('cmTest')
exe1 = executable('exe1', ['main.c'], dependencies: [sub_dep])
test('test1', exe1)

@ -0,0 +1,45 @@
cmake_minimum_required(VERSION 3.5)
project(cmTest)
#Detect processor
if ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "amd64")
SET(TEST_PROCESSOR "x86_64")
elseif ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "x86_64")
SET(TEST_PROCESSOR "x86_64")
elseif ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "i386")
SET(TEST_PROCESSOR "x86")
elseif ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "i686")
SET(TEST_PROCESSOR "x86")
elseif ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")
SET(TEST_PROCESSOR "arm")
elseif ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64")
SET(TEST_PROCESSOR "arm")
else ()
message(FATAL_ERROR, 'MESON_SKIP_TEST: Unsupported Assembler Platform')
endif ()
#Detect ABI
if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
SET(TEST_ABI "sysv")
elseif ("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD")
SET(TEST_ABI "sysv")
elseif ("${CMAKE_SYSTEM_NAME}" MATCHES "NetBSD")
SET(TEST_ABI "sysv")
elseif ("${CMAKE_SYSTEM_NAME}" MATCHES "OpenBSD")
SET(TEST_ABI "sysv")
else ()
message(FATAL_ERROR, 'MESON_SKIP_TEST: Unsupported Assembler Platform')
endif ()
SET(TEST_PLATFORM "${TEST_PROCESSOR}-${TEST_ABI}")
if ( ("${TEST_PLATFORM}" MATCHES "x86_64-sysv")
OR ("${TEST_PLATFORM}" MATCHES "x86-sysv")
OR ("${TEST_PLATFORM}" MATCHES "arm-sysv"))
SET(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
enable_language(ASM)
SET(TEST_SOURCE "cmTestAsm.s")
endif ()
add_library(cmTest STATIC cmTest.c ${TEST_SOURCE})

@ -0,0 +1,8 @@
#include <stdint.h>
extern const int32_t cmTestArea;
int32_t cmTestFunc()
{
return cmTestArea;
}

@ -0,0 +1,4 @@
.text
.globl cmTestArea
cmTestArea:
.long 4242
Loading…
Cancel
Save