xref: /aosp_15_r20/external/flashrom/tests/meson.build (revision 0d6140be3aa665ecc836e8907834fcd3e3b018fc)
1*0d6140beSAndroid Build Coastguard Worker# This file is part of the flashrom project.
2*0d6140beSAndroid Build Coastguard Worker#
3*0d6140beSAndroid Build Coastguard Worker# Copyright 2020 Google LLC
4*0d6140beSAndroid Build Coastguard Worker#
5*0d6140beSAndroid Build Coastguard Worker# This program is free software; you can redistribute it and/or modify
6*0d6140beSAndroid Build Coastguard Worker# it under the terms of the GNU General Public License as published by
7*0d6140beSAndroid Build Coastguard Worker# the Free Software Foundation; version 2 of the License.
8*0d6140beSAndroid Build Coastguard Worker#
9*0d6140beSAndroid Build Coastguard Worker# This program is distributed in the hope that it will be useful,
10*0d6140beSAndroid Build Coastguard Worker# but WITHOUT ANY WARRANTY; without even the implied warranty of
11*0d6140beSAndroid Build Coastguard Worker# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12*0d6140beSAndroid Build Coastguard Worker# GNU General Public License for more details.
13*0d6140beSAndroid Build Coastguard Worker
14*0d6140beSAndroid Build Coastguard Workertest_srcs = files(
15*0d6140beSAndroid Build Coastguard Worker  'io_mock.c',
16*0d6140beSAndroid Build Coastguard Worker  'tests.c',
17*0d6140beSAndroid Build Coastguard Worker  'libusb_wraps.c',
18*0d6140beSAndroid Build Coastguard Worker  'helpers.c',
19*0d6140beSAndroid Build Coastguard Worker  'flashrom.c',
20*0d6140beSAndroid Build Coastguard Worker  'spi25.c',
21*0d6140beSAndroid Build Coastguard Worker  'lifecycle.c',
22*0d6140beSAndroid Build Coastguard Worker  'layout.c',
23*0d6140beSAndroid Build Coastguard Worker  'chip.c',
24*0d6140beSAndroid Build Coastguard Worker  'chip_wp.c',
25*0d6140beSAndroid Build Coastguard Worker  'selfcheck.c',
26*0d6140beSAndroid Build Coastguard Worker  'io_real.c',
27*0d6140beSAndroid Build Coastguard Worker)
28*0d6140beSAndroid Build Coastguard Worker
29*0d6140beSAndroid Build Coastguard Workerif not programmer.get('dummy').get('active')
30*0d6140beSAndroid Build Coastguard Worker  test_srcs += programmer.get('dummy').get('srcs')
31*0d6140beSAndroid Build Coastguard Workerendif
32*0d6140beSAndroid Build Coastguard Worker
33*0d6140beSAndroid Build Coastguard Workerforeach p_name, p_data : programmer
34*0d6140beSAndroid Build Coastguard Worker  test_srcs += p_data.get('test_srcs')
35*0d6140beSAndroid Build Coastguard Workerendforeach
36*0d6140beSAndroid Build Coastguard Worker
37*0d6140beSAndroid Build Coastguard Workermocks = [
38*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=strdup',
39*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=physunmap',
40*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=physmap',
41*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=pcidev_init',
42*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=pcidev_readbar',
43*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=spi_send_command',
44*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=sio_write',
45*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=sio_read',
46*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=open',
47*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=open64',
48*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=__open64_2',
49*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=ioctl',
50*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=read',
51*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=write',
52*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fopen',
53*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fopen64',
54*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fdopen',
55*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fwrite',
56*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fflush',
57*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=stat',
58*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=stat64',
59*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=__xstat',
60*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=__xstat64',
61*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fstat',
62*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fstat64',
63*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=__fstat50',
64*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=__fxstat',
65*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=__fxstat64',
66*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fileno',
67*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fsync',
68*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fread',
69*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fgets',
70*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fprintf',
71*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=fclose',
72*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=feof',
73*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=ferror',
74*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=flock',
75*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=ftruncate',
76*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=clearerr',
77*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=setvbuf',
78*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=rget_io_perms',
79*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=OUTB',
80*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=INB',
81*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=OUTW',
82*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=INW',
83*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=OUTL',
84*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=INL',
85*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=usb_dev_get_by_vid_pid_number',
86*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_init',
87*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_set_debug',
88*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_set_option',
89*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_open',
90*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_set_auto_detach_kernel_driver',
91*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_detach_kernel_driver',
92*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_attach_kernel_driver',
93*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_open_device_with_vid_pid',
94*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_get_device',
95*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_get_device_list',
96*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_free_device_list',
97*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_get_bus_number',
98*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_get_device_address',
99*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_get_device_descriptor',
100*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_get_config_descriptor',
101*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_free_config_descriptor',
102*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_get_configuration',
103*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_set_configuration',
104*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_claim_interface',
105*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_control_transfer',
106*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_release_interface',
107*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_ref_device',
108*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_unref_device',
109*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_close',
110*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_alloc_transfer',
111*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_submit_transfer',
112*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_free_transfer',
113*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_handle_events_timeout',
114*0d6140beSAndroid Build Coastguard Worker  '-Wl,--wrap=libusb_exit',
115*0d6140beSAndroid Build Coastguard Worker  '-Wl,--gc-sections',
116*0d6140beSAndroid Build Coastguard Worker]
117*0d6140beSAndroid Build Coastguard Worker
118*0d6140beSAndroid Build Coastguard Workerthreads_dep = dependency('threads')
119*0d6140beSAndroid Build Coastguard Worker
120*0d6140beSAndroid Build Coastguard Workerflashrom_tests = executable('flashrom_unit_tests',
121*0d6140beSAndroid Build Coastguard Worker  test_srcs,
122*0d6140beSAndroid Build Coastguard Worker  c_args : [
123*0d6140beSAndroid Build Coastguard Worker    cargs,
124*0d6140beSAndroid Build Coastguard Worker    '-ffunction-sections',
125*0d6140beSAndroid Build Coastguard Worker    '-fdata-sections',
126*0d6140beSAndroid Build Coastguard Worker    '-U_FORTIFY_SOURCE',
127*0d6140beSAndroid Build Coastguard Worker  ],
128*0d6140beSAndroid Build Coastguard Worker  export_dynamic : true,
129*0d6140beSAndroid Build Coastguard Worker  link_args : mocks + link_args,
130*0d6140beSAndroid Build Coastguard Worker  dependencies : [cmocka_dep, flashrom_test_dep, threads_dep],
131*0d6140beSAndroid Build Coastguard Worker)
132*0d6140beSAndroid Build Coastguard Workertest('cmocka test flashrom', flashrom_tests, timeout: 0)
133*0d6140beSAndroid Build Coastguard Worker
134*0d6140beSAndroid Build Coastguard Workerif get_option('llvm_cov').enabled()
135*0d6140beSAndroid Build Coastguard Worker  run_target('llvm-cov-tests', command : ['../scripts/llvm-cov', flashrom_tests])
136*0d6140beSAndroid Build Coastguard Workerendif
137