blob: 169b7ff33b46f42ada3a43db3c19e331f05b1aed [file]
# -*- python -*-
# Copyright (c) 2012 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import platform
Import('env')
######################################################################
# Publish nexes and corresponding html to scons-out/.../staging/
######################################################################
srpc_test_objs = env.ComponentObject('srpc_test', 'srpc_test.c')
srpc_test_libs = ['srpc', 'imc_syscalls', 'platform', 'gio', 'm']
srpc_test_nexe_name = env.ProgramNameForNmf('srpc_test')
srpc_test_nexe = env.ComponentProgram(
srpc_test_nexe_name, srpc_test_objs,
EXTRA_LIBS=srpc_test_libs + [
'${PTHREAD_LIBS}'])
env.Publish(srpc_test_nexe_name, 'run',
['srpc_basic.html',
'srpc_perf.html'])
srpc_test_nonbrowser = env.ComponentProgram(
'srpc_test_nonbrowser', srpc_test_objs,
EXTRA_LIBS=srpc_test_libs + ['${PTHREAD_LIBS}', '${NONIRT_LIBS}'])
srpc_nrd_server_nexe_name = env.ProgramNameForNmf('srpc_nrd_server')
srpc_nrd_server_nexe = env.ComponentProgram(
srpc_nrd_server_nexe_name, 'srpc_nrd_server.c',
EXTRA_LIBS=[
'srpc',
'imc_syscalls',
'platform',
'gio',
'm',
'${PTHREAD_LIBS}'])
srpc_nrd_client_nexe_name = env.ProgramNameForNmf('srpc_nrd_client')
srpc_nrd_client_nexe = env.ComponentProgram(
srpc_nrd_client_nexe_name, 'srpc_nrd_client.c',
EXTRA_LIBS=[
'srpc',
'imc_syscalls',
'platform',
'gio',
'm',
'${PTHREAD_LIBS}'])
env.Publish(srpc_nrd_client_nexe_name, 'run',
['srpc_nrd_xfer.html',
srpc_nrd_server_nexe])
srpc_bidir_nexe_name = env.ProgramNameForNmf('srpc_bidir')
srpc_bidir_nexe = env.ComponentProgram(
srpc_bidir_nexe_name, 'srpc_bidir.c',
EXTRA_LIBS=['srpc', 'imc_syscalls', 'platform', 'gio', 'm', 'pthread'])
env.Publish(srpc_bidir_nexe_name, 'run', [])
# NOTE: at least for ARM the EXTRA_LIBS list should include 'srpc'
# but this somehow make the x86 version fragile
srpc_bad_service_nexe_name = env.ProgramNameForNmf('srpc_bad_service')
srpc_bad_service_nexe = env.ComponentProgram(
srpc_bad_service_nexe_name, 'srpc_bad_service.c',
EXTRA_LIBS=['imc_syscalls', 'm', '${PTHREAD_LIBS}', '${NONIRT_LIBS}'])
env.Publish(srpc_bad_service_nexe_name, 'run', [])
######################################################################
## Automated testing using sel_universal
######################################################################
node = env.SelUniversalTest(
'srpc_basic_test.out',
srpc_test_nonbrowser,
sel_universal_flags=['--command_file', env.File('srpc_basic_test.stdin')],
stdout_golden=env.File('srpc_basic_test.stdout'),
)
env.AddNodeToTestSuite(node,
['sel_ldr_tests', 'small_tests'],
'run_srpc_basic_test')
node = env.SelUniversalTest(
'srpc_bad_service.out',
srpc_bad_service_nexe,
exit_status='1'
)
env.AddNodeToTestSuite(node,
['sel_ldr_tests', 'small_tests'],
'run_srpc_bad_service_test')