diff options
Diffstat (limited to 'sandbox/src')
-rw-r--r-- | sandbox/src/SConscript | 259 | ||||
-rw-r--r-- | sandbox/src/sandbox_lib.scons | 100 |
2 files changed, 100 insertions, 259 deletions
diff --git a/sandbox/src/SConscript b/sandbox/src/SConscript deleted file mode 100644 index 8914ba2..0000000 --- a/sandbox/src/SConscript +++ /dev/null @@ -1,259 +0,0 @@ -# Copyright (c) 2006-2008 The Chromium 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('env') - -env = env.Clone() - -# Some of the sandbox sources include "gtest.h", so we need it -# in the base env here, not just in env_tests. -env.Prepend( - CPPPATH = [ - '$GTEST_DIR/include', - '$GTEST_DIR', - '../..', - ], - CPPDEFINES = [ - 'CHROMIUM_BUILD', - '_SECURE_ATL', - ], -) - -env.Append( - CCFLAGS = [ - '/TP', - '/WX', # treat warnings as errors - ], -) - -env_tests = env.Clone( - TESTS_DIR = '../tests', - INTEGRATION_TESTS_DIR = '$TESTS_DIR/integration_tests', - UNIT_TESTS_DIR = '$TESTS_DIR/unit_tests', - VALIDATION_TESTS_DIR = '$TESTS_DIR/validation_tests', -) - - -input_files = [ - 'Wow64.cc', - 'acl.cc', - 'broker_services.cc', - 'crosscall_server.cc', - 'dep.cc', - 'eat_resolver.cc', - 'filesystem_dispatcher.cc', - 'filesystem_interception.cc', - 'filesystem_policy.cc', - 'interception.cc', - 'interception_agent.cc', - 'job.cc', - 'named_pipe_dispatcher.cc', - 'named_pipe_interception.cc', - 'named_pipe_policy.cc', - 'pe_image.cc', - 'policy_broker.cc', - 'policy_engine_opcodes.cc', - 'policy_engine_processor.cc', - 'policy_low_level.cc', - 'policy_target.cc', - 'process_thread_dispatcher.cc', - 'process_thread_interception.cc', - 'process_thread_policy.cc', - 'registry_dispatcher.cc', - 'registry_interception.cc', - 'registry_policy.cc', - 'resolver.cc', - 'restricted_token.cc', - 'restricted_token_utils.cc', - 'sandbox.cc', - 'sandbox_nt_util.cc', - 'sandbox_policy_base.cc', - 'sandbox_utils.cc', - 'service_resolver.cc', - 'shared_handles.cc', - 'sharedmem_ipc_client.cc', - 'sharedmem_ipc_server.cc', - 'sid.cc', - 'sidestep/ia32_modrm_map.cpp', - 'sidestep/ia32_opcode_map.cpp', - 'sidestep/mini_disassembler.cpp', - 'sidestep/preamble_patcher_with_stub.cpp', - 'sidestep_resolver.cc', - 'sync_dispatcher.cc', - 'sync_interception.cc', - 'sync_policy.cc', - 'target_interceptions.cc', - 'target_process.cc', - 'target_services.cc', - 'win2k_threadpool.cc', - 'win_utils.cc', -] - -# TODO(bradnelson): This step generates sandbox.pch.ib_tag -# SCons doesn't know. -env_p = env.Clone() -env_p.Append(CCFLAGS='/Ylsandbox') -pch, obj = env_p.PCH(['sandbox.pch', 'stdafx.obj'], 'stdafx.cc') -env['PCH'] = pch -env['PCHSTOP'] = 'stdafx.h' -env.Append(CCPCHFLAGS = ['/FIstdafx.h']) - - -env.ChromeStaticLibrary('sandbox', input_files + [obj]) - - -env_tests.Prepend( - LINKFLAGS = [ - '/DELAYLOAD:dwmapi.dll', - '/DELAYLOAD:uxtheme.dll', - '/MACHINE:X86', - '/FIXED:No', - '/safeseh', - '/dynamicbase', - '/ignore:4199', - '/nxcompat', - ], - LIBS = [ - 'base', - 'gtest', - 'sandbox', - ], - LIBPATH = [ - '.', - '$BASE_DIR' - ], -) - -controller_obj = env_tests.StaticObject('$TESTS_DIR/common/controller.cc') - - -# Unit Tests - -env_unit_tests = env_tests.Clone() - -unit_test_files = [ - 'interception_unittest.cc', - 'ipc_unittest.cc', - 'job_unittest.cc', - 'pe_image_unittest.cc', - 'policy_engine_unittest.cc', - 'policy_low_level_unittest.cc', - 'policy_opcodes_unittest.cc', - 'restricted_token_unittest.cc', - 'service_resolver_unittest.cc', - 'sid_unittest.cc', - 'threadpool_unittest.cc', - - '$UNIT_TESTS_DIR/unit_tests$OBJSUFFIX', - # The VisualStudio build link with the old gtest.obj file directly, - # although we no longer remember why. Since we're linking with all - # of gtest.lib now, this shouldn't be necessary (hey, the unit tests - # all pass!), but we're leaving this here, commented out, just in case. - #'$GTEST_DIR/src/gtest$OBJSUFFIX', - controller_obj, -] - - -# TODO(bradnelson): This step generates unittests_tests.pch.ib_tag -# SCons doesn't know. -env_p = env_unit_tests.Clone() -pch, obj = env_p.PCH(['$UNIT_TESTS_DIR/unit_tests.pch', - '$UNIT_TESTS_DIR/unit_tests.obj'], - '$UNIT_TESTS_DIR/unit_tests.cc') -env_unit_tests['PCH'] = pch -env_unit_tests['PCHSTOP'] = 'stdafx.h' -env_unit_tests.Append(CCPCHFLAGS = ['/FIstdafx.h']) - - -unit_tests = env_unit_tests.ChromeTestProgram( - 'sbox_unittests', - unit_test_files, -) - -# Integration Tests - -env_integration_tests = env_tests.Clone() - -integration_test_files = [ - '$INTEGRATION_TESTS_DIR/integration_tests_test.cc', -# 'dep_test.cc', - 'file_policy_test.cc', - 'integrity_level_test.cc', - 'ipc_ping_test.cc', - 'named_pipe_policy_test.cc', - 'policy_target_test.cc', - 'process_policy_test.cc', - 'registry_policy_test.cc', - 'sync_policy_test.cc', - 'unload_dll_test.cc', - - '$INTEGRATION_TESTS_DIR/integration_tests$OBJSUFFIX', - # The VisualStudio build link with the old gtest.obj file directly, - # although we no longer remember why. Since we're linking with all - # of gtest.lib now, this shouldn't be necessary (hey, the unit tests - # all pass!), but we're leaving this here, commented out, just in case. - #'$GTEST_DIR/src/gtest$OBJSUFFIX', - controller_obj, -] - - -# TODO(bradnelson): This step generates integration_tests.pch.ib_tag -# SCons doesn't know. -env_p = env_integration_tests.Clone() -pch, obj = env_p.PCH(['$INTEGRATION_TESTS_DIR/integration_tests.pch', - '$INTEGRATION_TESTS_DIR/integration_tests.obj'], - '$INTEGRATION_TESTS_DIR/integration_tests.cc') -env_integration_tests['PCH'] = pch -env_integration_tests['PCHSTOP'] = 'stdafx.h' -env_integration_tests.Append(CCPCHFLAGS = ['/FIstdafx.h']) - -integration_tests = env_integration_tests.ChromeTestProgram( - 'sbox_integration_tests', - integration_test_files, -) - - -# Validation Tests # - -env_validation_tests = env_tests.Clone() - -env_validation_tests.Prepend(LIBS=['shlwapi.lib']) - -validation_test_files = [ - '$VALIDATION_TESTS_DIR/suite.cc', - '$VALIDATION_TESTS_DIR/commands.cc', - '$VALIDATION_TESTS_DIR/unit_tests$OBJSUFFIX', - # The VisualStudio build link with the old gtest.obj file directly, - # although we no longer remember why. Since we're linking with all - # of gtest.lib now, this shouldn't be necessary (hey, the unit tests - # all pass!), but we're leaving this here, commented out, just in case. - #'$GTEST_DIR/src/gtest$OBJSUFFIX', - controller_obj, -] - -env_p = env_validation_tests.Clone() - -# TODO(bradnelson): This step generates unittests_tests.pch.ib_tag -# SCons doesn't know. -pch, obj = env_p.PCH(['$VALIDATION_TESTS_DIR/unit_tests.pch', - '$VALIDATION_TESTS_DIR/unit_tests.obj'], - '$VALIDATION_TESTS_DIR/unit_tests.cc') -env_validation_tests['PCH'] = pch -env_validation_tests['PCHSTOP'] = 'stdafx.h' -env_validation_tests.Append(CCPCHFLAGS = ['/FIstdafx.h']) - -validation_tests = env_validation_tests.ChromeTestProgram( - 'sbox_validation_tests', - validation_test_files, -) - - -# Install tests to a path where they can find their inputs. -installed_tests = env.Install('$OBJ_ROOT', - unit_tests + validation_tests + integration_tests) - - -# Setup alias for sandbox related targets. -env.Alias('sandbox', ['.', installed_tests]) - diff --git a/sandbox/src/sandbox_lib.scons b/sandbox/src/sandbox_lib.scons new file mode 100644 index 0000000..4232ff8 --- /dev/null +++ b/sandbox/src/sandbox_lib.scons @@ -0,0 +1,100 @@ +# Copyright (c) 2006-2008 The Chromium 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('env') + +env = env.Clone() + +env.SConscript([ + '$GTEST_DIR/../using_gtest.scons', +], {'env':env}) + +# Some of the sandbox sources include "gtest.h", so we need it +# in the base env here, not just in env_tests. +env.Prepend( + CPPPATH = [ + '$CHROME_SRC_DIR', + ], + CPPDEFINES = [ + 'CHROMIUM_BUILD', + ], +) + +if env['PLATFORM'] == 'win32': + env.Append( + CPPDEFINES = [ + '_SECURE_ATL', + '_WINDOWS', + ], + CCFLAGS = [ + '/TP', + '/WX', # treat warnings as errors + ], + ) + +input_files = [ + 'Wow64.cc', + 'acl.cc', + 'broker_services.cc', + 'crosscall_server.cc', + 'dep.cc', + 'eat_resolver.cc', + 'filesystem_dispatcher.cc', + 'filesystem_interception.cc', + 'filesystem_policy.cc', + 'interception.cc', + 'interception_agent.cc', + 'job.cc', + 'named_pipe_dispatcher.cc', + 'named_pipe_interception.cc', + 'named_pipe_policy.cc', + 'pe_image.cc', + 'policy_broker.cc', + 'policy_engine_opcodes.cc', + 'policy_engine_processor.cc', + 'policy_low_level.cc', + 'policy_target.cc', + 'process_thread_dispatcher.cc', + 'process_thread_interception.cc', + 'process_thread_policy.cc', + 'registry_dispatcher.cc', + 'registry_interception.cc', + 'registry_policy.cc', + 'resolver.cc', + 'restricted_token.cc', + 'restricted_token_utils.cc', + 'sandbox.cc', + 'sandbox_nt_util.cc', + 'sandbox_policy_base.cc', + 'sandbox_utils.cc', + 'service_resolver.cc', + 'shared_handles.cc', + 'sharedmem_ipc_client.cc', + 'sharedmem_ipc_server.cc', + 'sid.cc', + 'sidestep/ia32_modrm_map.cpp', + 'sidestep/ia32_opcode_map.cpp', + 'sidestep/mini_disassembler.cpp', + 'sidestep/preamble_patcher_with_stub.cpp', + 'sidestep_resolver.cc', + 'sync_dispatcher.cc', + 'sync_interception.cc', + 'sync_policy.cc', + 'target_interceptions.cc', + 'target_process.cc', + 'target_services.cc', + 'win2k_threadpool.cc', + 'win_utils.cc', +] + +# TODO(bradnelson): This step generates sandbox.pch.ib_tag +# SCons doesn't know. +env_p = env.Clone() +env_p.Append(CCFLAGS='/Ylsandbox') +pch, obj = env_p.PCH(['sandbox.pch', 'stdafx.obj'], 'stdafx.cc') +env['PCH'] = pch +env['PCHSTOP'] = 'stdafx.h' +env.Append(CCPCHFLAGS = ['/FIstdafx.h']) + +env.ChromeStaticLibrary('sandbox', input_files + [obj]) |