int main(int argc, char**argv){ CREATE_FILE(TEST_FILE, DATA_FOR_FILE, DATASIZE_FOR_FILE); /*unlink*/ REMOVE_EXISTING_FILEPATH(TEST_FILE); CREATE_FILE(TEST_FILE2, DATA_FOR_FILE, DATASIZE_FOR_FILE); int ret; TEST_OPERATION_RESULT( link(TEST_FILE2, TEST_FILE), &ret, ret!=-1); /*now we have 2 hardlinks for a single file*/ /*compare files*/ int fd1, fd2; char *data1, *data2; off_t filesize1, filesize2; MMAP_READONLY_SHARED_FILE(TEST_FILE, 0, &fd1, data1); MMAP_READONLY_SHARED_FILE(TEST_FILE2, 0, &fd2, data2); GET_FILE_SIZE(TEST_FILE, &filesize1); GET_FILE_SIZE(TEST_FILE2, &filesize2); TEST_OPERATION_RESULT( (filesize1==filesize2), &ret, ret==1); CMP_MEM_DATA(data1, data2, filesize1); //check stat data struct stat st1; struct stat st2; TEST_OPERATION_RESULT( stat(TEST_FILE, &st1), &ret, ret==0); TEST_OPERATION_RESULT( stat(TEST_FILE2, &st2), &ret, ret==0); TEST_OPERATION_RESULT( st1.st_nlink==st2.st_nlink, &ret, ret!=0); TEST_OPERATION_RESULT( st1.st_ino==st2.st_ino, &ret, ret!=0); MUNMAP_FILE(data1, filesize1); MUNMAP_FILE(data2, filesize2); CLOSE_FILE(fd1); CLOSE_FILE(fd2); test_zrt_issue_67(TMP_TEST_DIR, TMP_TEST_FILE); test_zrt_issue_67(TMP_TEST_DIR, TMP_TEST_FILE); test_zrt_issue_70(); test_zrt_issue_77(TMP_TEST_DIR, TMP_TEST_FILE); return 0; }
static int __init sysfscluster_init(void) { int e; TRACE_CLUSTER(("+sysfscluster_init\n")); spin_lock_init(&cluster_lock); cluster_kobj = kobject_create_and_add("cluster", kernel_kobj); CREATE_FILE(active); CREATE_FILE(immediate); CREATE_FILE(force); CREATE_FILE(wake_ms); #if defined(CONFIG_PM_SLEEP) && SYSFS_CLUSTER_POWER_MODE CREATE_FILE(powermode); #endif #ifdef CONFIG_ARCH_TEGRA_HAS_SYMMETRIC_CPU_PWR_GATE CREATE_FILE(powergate); #endif #if DEBUG_CLUSTER_SWITCH CREATE_FILE(debug); #endif spin_lock(&cluster_lock); if (is_lp_cluster()) flags |= TEGRA_POWER_CLUSTER_LP; else flags |= TEGRA_POWER_CLUSTER_G; spin_unlock(&cluster_lock); fail: TRACE_CLUSTER(("-sysfscluster_init\n")); return e; }
int main(int argc, char**argv){ /*create data file*/ CREATE_FILE(MMAP_FILE, DATA_FOR_MMAP, DATASIZE_FOR_MMAP); /*test1: test mmap+munmap with 0 offset*/ mmap_test(0); /*test2: test mmap with not 0 offset*/ mmap_test(10); return 0; }
void test_cgroup_job_start (void) { char confdir[PATH_MAX]; char logdir[PATH_MAX]; char flagfile[PATH_MAX]; nih_local char *cmd = NULL; pid_t dbus_pid = 0; pid_t upstart_pid = 0; char **output; size_t lines; size_t len; nih_local char *logfile = NULL; nih_local char *logfile_name = NULL; nih_local char *contents = NULL; if (geteuid ()) { printf ("INFO: skipping %s tests as not running as root\n", __func__); fflush (NULL); return; } TEST_GROUP ("cgroup manager handling"); TEST_FILENAME (confdir); TEST_EQ (mkdir (confdir, 0755), 0); TEST_FILENAME (logdir); TEST_EQ (mkdir (logdir, 0755), 0); TEST_FILENAME (flagfile); /* Use the "secret" interface */ TEST_EQ (setenv ("UPSTART_CONFDIR", confdir, 1), 0); TEST_EQ (setenv ("UPSTART_LOGDIR", logdir, 1), 0); TEST_DBUS (dbus_pid); /*******************************************************************/ TEST_FEATURE ("Ensure startup job does not start until cgmanager available"); contents = nih_sprintf (NULL, "start on startup\n" "\n" "cgroup memory mem-%s\n" "\n" "exec echo hello\n", __func__); TEST_NE_P (contents, NULL); CREATE_FILE (confdir, "cgroup.conf", contents); logfile_name = NIH_MUST (nih_sprintf (NULL, "%s/%s", logdir, "cgroup.log")); start_upstart_common (&upstart_pid, FALSE, FALSE, confdir, logdir, NULL); cmd = nih_sprintf (NULL, "%s status %s 2>&1", get_initctl (), "cgroup"); TEST_NE_P (cmd, NULL); RUN_COMMAND (NULL, cmd, &output, &lines); TEST_EQ (lines, 1); /* job should *NOT* start on startup */ TEST_EQ_STR (output[0], "cgroup stop/waiting"); nih_free (output); TEST_FALSE (file_exists (logfile_name)); cmd = nih_sprintf (NULL, "%s notify-cgroup-manager-address %s 2>&1", get_initctl (), CGMANAGER_DBUS_SOCK); TEST_NE_P (cmd, NULL); RUN_COMMAND (NULL, cmd, &output, &lines); TEST_EQ (lines, 0); WAIT_FOR_FILE (logfile_name); logfile = nih_file_read (NULL, logfile_name, &len); TEST_NE_P (logfile, NULL); TEST_EQ_STR (logfile, "hello\r\n"); DELETE_FILE (confdir, "cgroup.conf"); assert0 (unlink (logfile_name)); /*******************************************************************/ TEST_FEATURE ("Ensure bogus cgroups don't crash init"); contents = nih_sprintf (NULL, "cgroup name\n" "\n" "exec echo hello\n"); TEST_NE_P (contents, NULL); CREATE_FILE (confdir, "cgroup-name.conf", contents); logfile_name = NIH_MUST (nih_sprintf (NULL, "%s/%s", logdir, "cgroup-name.log")); cmd = nih_sprintf (NULL, "%s status %s 2>&1", get_initctl (), "cgroup-name"); TEST_NE_P (cmd, NULL); RUN_COMMAND (NULL, cmd, &output, &lines); TEST_EQ (lines, 1); /* job is not running yet */ TEST_EQ_STR (output[0], "cgroup-name stop/waiting"); nih_free (output); TEST_FALSE (file_exists (logfile_name)); cmd = nih_sprintf (NULL, "%s start %s 2>&1", get_initctl (), "cgroup-name"); TEST_NE_P (cmd, NULL); RUN_COMMAND (NULL, cmd, &output, &lines); TEST_EQ (lines, 1); TEST_EQ_STR (output[0], "initctl: Job failed to start"); DELETE_FILE (confdir, "cgroup-name.conf"); /*******************************************************************/ STOP_UPSTART (upstart_pid); TEST_DBUS_END (dbus_pid); TEST_EQ (rmdir (confdir), 0); TEST_EQ (rmdir (logdir), 0); /*******************************************************************/ }
int main(int argc, char**argv){ int ret; struct stat st; //lstat test TEST_OPERATION_RESULT( lstat(TEST_FILE, &st), &ret, (ret==-1&&errno==ENOENT)); CREATE_FILE(TEST_FILE, DATA_FOR_FILE, DATASIZE_FOR_FILE); TEST_OPERATION_RESULT( lstat(TEST_FILE, &st), &ret, ret==0&&st.st_nlink==1); REMOVE_EXISTING_FILEPATH(TEST_FILE); ////////////////////////////////////// //stat test TEST_OPERATION_RESULT( stat(TEST_FILE, &st), &ret, (ret==-1&&errno==ENOENT)); fprintf(stderr, "errno=%d\n", errno);fflush(0); CREATE_FILE(TEST_FILE, DATA_FOR_FILE, DATASIZE_FOR_FILE); TEST_OPERATION_RESULT( stat(TEST_FILE, &st), &ret, ret==0&&st.st_nlink==1&&S_ISREG(st.st_mode)); CREATE_EMPTY_DIR(DIR_NAME); TEST_OPERATION_RESULT( stat(DIR_NAME, &st), &ret, ret==0&&st.st_nlink==2&&S_ISDIR(st.st_mode)); CREATE_EMPTY_DIR(DIR_NAME "/" DIR_NAME2); TEST_OPERATION_RESULT( stat(DIR_NAME, &st), &ret, ret==0&&st.st_nlink==3&&S_ISDIR(st.st_mode)!=0); TEST_OPERATION_RESULT( rmdir(DIR_NAME "/" DIR_NAME2), &ret, ret==0 ); TEST_OPERATION_RESULT( stat(DIR_NAME, &st), &ret, ret==0&&st.st_nlink==2); REMOVE_EXISTING_FILEPATH(TEST_FILE); /*mapping && file mode tests*/ TEST_OPERATION_RESULT( stat("/dev/stdin", &st), &ret, ret==0&& ((st.st_mode&S_IWUSR)!=S_IWUSR)&& ((st.st_mode&S_IRUSR)==S_IRUSR)&& S_ISCHR(st.st_mode)); TEST_OPERATION_RESULT( stat("/dev/stdout", &st), &ret, ret==0&& ((st.st_mode&S_IWUSR)==S_IWUSR)&& ((st.st_mode&S_IRUSR)!=S_IRUSR)&& S_ISFIFO(st.st_mode)); TEST_OPERATION_RESULT( stat("/dev/stderr", &st), &ret, ret==0&& ((st.st_mode&S_IWUSR)==S_IWUSR)&& ((st.st_mode&S_IRUSR)!=S_IRUSR)&& S_ISREG(st.st_mode)); TEST_OPERATION_RESULT( stat("/dev/read-write", &st), &ret, ret==0&& ((st.st_mode&S_IWUSR)==S_IWUSR)&& ((st.st_mode&S_IRUSR)==S_IRUSR)&& S_ISBLK(st.st_mode)); return 0; }