blob: 0ff6d16db6f4116f96220ebd4a7a8fbde02c8897 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License..
#![crate_name = "unittestsampleenclave"]
#![crate_type = "staticlib"]
#![feature(box_syntax)]
#![feature(core_intrinsics)]
#![cfg_attr(not(target_env = "sgx"), no_std)]
#![cfg_attr(target_env = "sgx", feature(rustc_private))]
#[cfg(target_env = "sgx")]
extern crate core;
extern crate sgx_types;
#[cfg(not(target_env = "sgx"))]
#[macro_use]
extern crate sgx_tstd as std;
extern crate sgx_tcrypto;
#[macro_use]
extern crate sgx_tunittest;
extern crate rand;
extern crate sgx_align_struct_attribute;
extern crate sgx_alloc;
extern crate sgx_rand;
extern crate sgx_trts;
extern crate sgx_tseal;
#[macro_use]
extern crate memoffset;
extern crate sgx_serialize;
pub use sgx_serialize::*;
#[macro_use]
extern crate sgx_serialize_derive;
extern crate sgx_libc;
extern crate sgx_signal;
pub use sgx_serialize::*;
use sgx_tunittest::*;
use sgx_types::*;
use std::string::String;
use std::vec::Vec;
mod utils;
mod test_crypto;
use test_crypto::*;
mod test_assert;
use test_assert::*;
pub mod test_rts;
use test_rts::*;
mod test_seal;
use test_seal::*;
mod test_rand;
use test_rand::*;
mod test_serialize;
use test_serialize::*;
mod test_file;
use test_file::*;
mod test_time;
use test_time::*;
mod test_rand_cratesio;
use test_rand_cratesio::*;
mod test_types;
use test_types::*;
mod test_env;
use test_env::*;
mod test_path;
use test_path::*;
mod test_thread;
use test_thread::*;
mod test_mpsc;
use test_mpsc::*;
mod test_alignbox;
use test_alignbox::*;
mod test_alignstruct;
mod test_signal;
use test_signal::*;
mod test_exception;
use test_exception::*;
mod test_fp;
use test_fp::*;
#[no_mangle]
pub extern "C" fn test_main_entrance() -> size_t {
rsgx_unit_tests!(
// tcrypto
test_rsgx_sha256_slice,
test_rsgx_sha256_handle,
// assert
foo_panic,
foo_should,
foo_assert,
// rts::veh
test_register_first_exception_handler,
test_register_last_exception_handler,
test_register_multiple_exception_handler,
// rts::trts
test_rsgx_get_thread_policy,
test_trts_sizes,
test_read_rand,
test_data_is_within_enclave,
test_slice_is_within_enlave,
test_raw_is_within_enclave,
test_data_is_outside_enclave,
test_slice_is_outside_enclave,
test_raw_is_outside_enclave,
// rts::macros
test_global_ctors_object,
// rts::error
test_error,
// rts::libc
test_rts_libc_memchr,
test_rts_libc_memrchr,
// rts::memchr
test_rts_memchr_memchr,
test_rts_memchr_memrchr,
test_ascii,
// rts::c_str
test_cstr,
// tseal
test_seal_unseal,
test_number_sealing, // Thanks to @silvanegli
test_array_sealing, // Thanks to @silvanegli
test_mac_aadata_slice,
test_mac_aadata_number,
// rand
test_rand_os_sgxrng,
test_rand_distributions,
test_rand_isaac_isaacrng,
test_rand_chacharng,
test_rand_reseeding,
// serialize
test_serialize_base,
test_serialize_struct,
test_serialize_enum,
// std::sgxfs
test_sgxfs,
// std::fs
test_fs,
// std::fs untrusted mode
test_fs_untrusted_fs_feature_enabled,
// std::time
test_std_time,
// rand
test_rand_cratesio,
// types
check_metadata_size,
check_version,
// env
test_env_vars_os,
test_env_self_exe_path,
test_env_current_dir,
test_env_home_dir,
//path
test_path_stat_is_correct_on_is_dir,
test_path_fileinfo_false_when_checking_is_file_on_a_directory,
test_path_directoryinfo_check_exists_before_and_after_mkdir,
test_path_directoryinfo_readdir,
test_path_mkdir_path_already_exists_error,
test_path_recursive_mkdir,
test_path_recursive_mkdir_failure,
test_path_recursive_mkdir_slash,
test_path_recursive_mkdir_dot,
test_path_recursive_mkdir_empty,
test_path_recursive_rmdir,
test_path_recursive_rmdir_of_symlink,
test_path_unicode_path_is_dir,
test_path_unicode_path_exists,
test_path_copy_file_dst_dir,
test_path_copy_file_src_dir,
test_path_canonicalize_works_simple,
test_path_dir_entry_methods,
test_path_read_dir_not_found,
test_path_mkdir_trailing_slash,
test_path_create_dir_all_with_junctions,
test_path_copy_file_follows_dst_symlink,
// thread
test_thread_unnamed_thread,
test_thread_named_thread,
test_thread_run_basic,
test_thread_spawn_sched,
test_thread_spawn_sched_childs_on_default_sched,
test_thread_test_avoid_copying_the_body_spawn,
test_thread_test_avoid_copying_the_body_thread_spawn,
test_thread_test_avoid_copying_the_body_join,
test_thread_invalid_named_thread,
test_thread_join_panic,
test_thread_child_doesnt_ref_parent,
test_thread_simple_newsched_spawn,
test_thread_try_panic_message_static_str,
test_thread_try_panic_message_owned_str,
test_thread_try_panic_message_any,
test_thread_try_panic_message_unit_struct,
test_thread_park_timeout_unpark_before,
test_thread_park_timeout_unpark_not_called,
test_thread_park_timeout_unpark_called_other_thread,
test_thread_sleep_ms_smoke,
test_thread_size_of_option_thread_id,
test_thread_id_equal,
test_thread_id_not_equal,
//test mpsc
test_mpsc_smoke,
test_mpsc_drop_full,
test_mpsc_drop_full_shared,
test_mpsc_smoke_shared,
test_mpsc_smoke_threads,
test_mpsc_smoke_port_gone,
test_mpsc_smoke_shared_port_gone,
test_mpsc_smoke_shared_port_gone2,
test_mpsc_port_gone_concurrent,
test_mpsc_port_gone_concurrent_shared,
test_mpsc_smoke_chan_gone,
test_mpsc_smoke_chan_gone_shared,
test_mpsc_chan_gone_concurrent,
test_mpsc_stress,
test_mpsc_stress_shared,
test_mpsc_send_from_outside_runtime,
test_mpsc_recv_from_outside_runtime,
test_mpsc_no_runtime,
test_mpsc_oneshot_single_thread_close_port_first,
test_mpsc_oneshot_single_thread_close_chan_first,
test_mpsc_oneshot_single_thread_send_port_close,
//test_mpsc_oneshot_single_thread_recv_chan_close, //should panic
test_mpsc_oneshot_single_thread_send_then_recv,
test_mpsc_oneshot_single_thread_try_send_open,
test_mpsc_oneshot_single_thread_try_send_closed,
test_mpsc_oneshot_single_thread_try_recv_open,
test_mpsc_oneshot_single_thread_try_recv_closed,
test_mpsc_oneshot_single_thread_peek_data,
test_mpsc_oneshot_single_thread_peek_close,
test_mpsc_oneshot_single_thread_peek_open,
test_mpsc_oneshot_multi_task_recv_then_send,
//test_mpsc_oneshot_multi_task_recv_then_close, //should panic
test_mpsc_oneshot_multi_thread_close_stress,
//test_mpsc_oneshot_multi_thread_send_close_stress, //should panic
//test_mpsc_oneshot_multi_thread_recv_close_stress, //should panic
test_mpsc_oneshot_multi_thread_send_recv_stress,
test_mpsc_stream_send_recv_stress,
test_mpsc_oneshot_single_thread_recv_timeout,
test_mpsc_stress_recv_timeout_two_threads,
test_mpsc_recv_timeout_upgrade,
test_mpsc_stress_recv_timeout_shared,
test_mpsc_very_long_recv_timeout_wont_panic,
test_mpsc_recv_a_lot,
test_mpsc_shared_recv_timeout,
test_mpsc_shared_chan_stress,
test_mpsc_test_nested_recv_iter,
test_mpsc_test_recv_iter_break,
test_mpsc_test_recv_try_iter,
test_mpsc_test_recv_into_iter_owned,
test_mpsc_try_recv_states,
test_mpsc_destroy_upgraded_shared_port_when_sender_still_active,
test_mpsc_issue_32114,
test_mpsc_sync_smoke,
test_mpsc_sync_drop_full,
test_mpsc_sync_smoke_shared,
test_mpsc_sync_recv_timeout,
test_mpsc_sync_smoke_threads,
test_mpsc_sync_smoke_port_gone,
test_mpsc_sync_smoke_shared_port_gone2,
test_mpsc_sync_port_gone_concurrent,
test_mpsc_sync_port_gone_concurrent_shared,
test_mpsc_sync_smoke_chan_gone,
test_mpsc_sync_smoke_chan_gone_shared,
test_mpsc_sync_chan_gone_concurrent,
test_mpsc_sync_stress,
test_mpsc_sync_stress_recv_timeout_two_threads,
test_mpsc_sync_stress_recv_timeout_shared,
test_mpsc_sync_stress_shared,
test_mpsc_sync_oneshot_single_thread_close_port_first,
test_mpsc_sync_oneshot_single_thread_send_port_close,
//test_mpsc_sync_oneshot_single_thread_recv_chan_close, //should panic
test_mpsc_sync_oneshot_single_thread_send_then_recv,
test_mpsc_sync_oneshot_single_thread_try_send_open,
test_mpsc_sync_oneshot_single_thread_try_send_closed,
test_mpsc_sync_oneshot_single_thread_try_send_closed2,
test_mpsc_sync_oneshot_single_thread_try_recv_open,
test_mpsc_sync_oneshot_single_thread_try_recv_closed,
test_mpsc_sync_oneshot_single_thread_try_recv_closed_with_data,
test_mpsc_sync_oneshot_single_thread_peek_data,
test_mpsc_sync_oneshot_single_thread_peek_close,
test_mpsc_sync_oneshot_single_thread_peek_open,
test_mpsc_sync_oneshot_multi_task_recv_then_send,
//test_mpsc_sync_oneshot_multi_task_recv_then_close, //should panic
test_mpsc_sync_oneshot_multi_thread_close_stress,
//test_mpsc_sync_oneshot_multi_thread_send_close_stress, //should panic
//test_mpsc_sync_oneshot_multi_thread_recv_close_stress, //should panic
test_mpsc_sync_oneshot_multi_thread_send_recv_stress,
test_mpsc_sync_stream_send_recv_stress,
test_mpsc_sync_recv_a_lot,
test_mpsc_sync_shared_sync_chan_stress,
test_mpsc_sync_test_nested_recv_iter,
test_mpsc_sync_test_recv_iter_break,
test_mpsc_sync_try_recv_states,
test_mpsc_sync_destroy_upgraded_shared_port_when_sender_still_active,
test_mpsc_sync_send1,
test_mpsc_sync_send2,
test_mpsc_sync_send3,
test_mpsc_sync_send4,
test_mpsc_sync_try_send1,
test_mpsc_sync_try_send2,
test_mpsc_sync_try_send3,
test_mpsc_sync_issue_15761,
//test alignbox
test_alignbox,
test_alignbox_heap_init,
test_alignbox_clone,
test_alignbox_clonefrom,
test_alignbox_clonefrom_no_eq_size,
//test signal
test_signal_forbidden,
test_signal_without_pid,
test_signal_with_pid,
test_signal_register_unregister,
test_signal_register_unregister1,
//test float point
test_fp64,
//test exception
test_exception_handler,
)
}