blob: 0f5be0f0ef34de031c2e0874b95f9e51584c9711 [file] [log] [blame]
# -*- python -*-
# Copyright 2016 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 os
Import('env')
# The "-m" flag is not supported on Windows.
if env.Bit('host_windows') or env.Bit('nacl_glibc'):
Return()
env = env.Clone()
# Create a temporary directory and populate it with some files.
# Layout:
#
# | tempDir (MOUNTED DIRECTORY)
# > tempFile
# > tempSymlink
# | tempSubDir
# > tempSubFile
# | inaccessibleDir (INACCESSIBLE)
# | inaccessibleFile (INACCESSIBLE)
temp_dir_path = env.MakeTempDir(prefix='temp_dir')
temp_file_path = env.MakeEmptyFile(prefix='temp_file', dir=temp_dir_path)
temp_symlink_path = os.path.join(temp_dir_path, 'temp_symlink')
os.symlink(temp_file_path, temp_symlink_path)
temp_sub_dir_path = env.MakeTempDir(prefix='temp_sub_dir', dir=temp_dir_path)
temp_sub_dir_file_path = env.MakeEmptyFile(prefix='temp_sub_file',
dir=temp_sub_dir_path)
inaccessible_dir_path = env.MakeTempDir(prefix='temp_inaccessible_dir')
inaccessible_file_path = env.MakeEmptyFile(prefix='temp_inaccessible_file')
temp_directory_files = [temp_dir_path, temp_file_path, temp_symlink_path,
temp_sub_dir_path, temp_sub_dir_file_path,
inaccessible_dir_path, inaccessible_file_path]
# Only grab the suffix of the file path
temp_directory_files = [os.path.basename(f) for f in temp_directory_files]
mounted_directory = temp_dir_path
limited_file_access_nexe = env.ComponentProgram('limited_file_access',
'limited_file_access.cc',
EXTRA_LIBS=['${PTHREAD_LIBS}',
'${NONIRT_LIBS}'])
node = env.CommandSelLdrTestNacl(
'limited_file_access_test.out',
limited_file_access_nexe,
args=temp_directory_files,
sel_ldr_flags=['-m', mounted_directory])
env.AddNodeToTestSuite(node, ['small_tests'], 'run_limited_file_access_test')