From: Wanlong G. <gao...@cn...> - 2011-11-23 10:30:51
|
Signed-off-by: Tang Chen <tan...@cn...> Signed-off-by: Wanlong Gao <gao...@cn...> --- testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c | 47 +++++++------------- 1 files changed, 16 insertions(+), 31 deletions(-) diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c index 45cddf7..3bbbc46 100644 --- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c +++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c @@ -63,6 +63,7 @@ #include "test.h" #include "usctest.h" #include "system_specific_hugepages_info.h" +#include "libmnt.h" #define LOW_ADDR (void *)(0x80000000) #define LOW_ADDR2 (void *)(0x90000000) @@ -77,38 +78,17 @@ unsigned long *addrlist[5]; /* list of addresses of memory mapped region */ int i; int fildes; /* file descriptor for tempfile */ int nfildes; /* file descriptor for /dev/zero */ -char *Hopt; /* location of hugetlbfs */ +char *mount_point = NULL; -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -void help() -{ - printf(" -H /.. Location of hugetlbfs, i.e. -H /var/hugetlbfs \n"); -} +void setup(void); /* Main setup function of test */ +void cleanup(void); /* cleanup function for the test */ int main(int ac, char **av) { int lc; - char *msg; - int Hflag = 0; int page_sz, map_sz; - option_t options[] = { - { "H:", &Hflag, &Hopt }, /* Required for location of hugetlbfs */ - { NULL, NULL, NULL } /* NULL required to end array */ - }; - - /* Parse standard options given to run the test. */ - if ((msg = parse_opts(ac, av, options, &help)) != NULL) - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s, use -help", msg); - - if (Hflag == 0) { - tst_brkm(TBROK, NULL, - "-H option is REQUIRED for this test, use -h for options help"); - } - page_sz = getpagesize(); map_sz = 2 * 1024 * hugepages_size(); @@ -206,15 +186,20 @@ main(int ac, char **av) * Write some known data into file and get the size of the file. */ void -setup() +setup(void) { - tst_tmpdir(); - - snprintf(TEMPFILE, sizeof(TEMPFILE), "%s/mmapfile%d", Hopt, getpid()); - + tst_require_root(NULL); tst_sig(FORK, DEF_HANDLER, cleanup); TEST_PAUSE; + + tst_tmpdir(); + mount_point = get_tst_tmpdir(); + + mount_hugetlbfs(mount_point); + hugepage_alloc(1024); + + snprintf(TEMPFILE, sizeof(TEMPFILE), "%s/mmapfile%d", mount_point, getpid()); } /* @@ -223,7 +208,7 @@ setup() * Remove the temporary directory created. */ void -cleanup() +cleanup(void) { /* * print timing stats if that option was specified. @@ -231,6 +216,6 @@ cleanup() TEST_CLEANUP; unlink(TEMPFILE); - + umount_hugetlbfs(mount_point); tst_rmdir(); } -- 1.7.1 |