15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# -*- python -*-
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import os
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Import('env')
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if env.Bit('nacl_static_link'):
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Return()
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)toolchain_libraries = [
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    'libmemusage.so', # Will dlopen this library.
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ]
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def make_mappings(libdir, libs):
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return [(lib, env.File(os.path.join(libdir, lib))) for lib in libs]
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Allow resolving a URL to the toolchain/ directory (instead of staging).
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)browser_dlopen_file_mapping = make_mappings('${NACL_SDK_LIB}',
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                            toolchain_libraries)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)browser_dlopen_nexe_name = env.ProgramNameForNmf('browser_dlopen_test')
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)browser_dlopen_nexe = env.ComponentProgram(browser_dlopen_nexe_name,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                           'browser_dlopen_test.cc',
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                           EXTRA_LIBS=[
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                               'ppapi',
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                               'ppapi_test_lib',
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                               'platform',
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                               'dl',
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                               '${PTHREAD_LIBS}'])
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)env.Publish(browser_dlopen_nexe_name, 'run', ['browser_dlopen_test.html'])
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)browser_dlopen_node = env.PPAPIBrowserTester(
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    'browser_dlopen_test.out', url='browser_dlopen_test.html',
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    files=env.ExtractPublishedFiles(browser_dlopen_nexe_name),
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nmfs=['browser_dlopen_test.nmf'],
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    map_files=browser_dlopen_file_mapping)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)env.AddNodeToTestSuite(browser_dlopen_node, ['chrome_browser_tests'],
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                       'run_browser_dlopen_test',
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                       is_broken=env.PPAPIBrowserTesterIsBroken())
46