Signed-off-by: Tang Chen <[email protected]>
---
 testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c |   55 +++++++-------------
 1 files changed, 19 insertions(+), 36 deletions(-)

diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c 
b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c
index 874f736..1a96fad 100644
--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c
+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c
@@ -73,53 +73,30 @@
 #include "test.h"
 #include "usctest.h"
 #include "system_specific_hugepages_info.h"
+#include "libmnt.h"
 
 #define BUFFER_SIZE  256
 
-char* TEMPFILE="mmapfile";
+char TEMPFILE[MAXPATHLEN];
 
 char *TCID="hugemmap01";       /* Test program identifier.    */
 int TST_TOTAL=1;               /* Total number of test cases. */
 long *addr;                    /* addr of memory mapped region */
 int fildes;                    /* file descriptor for tempfile */
-char *Hopt;                     /* location of hugetlbfs */
+int hugepagesmapped=0;         /* Amount of huge pages mapped after testing */
 int beforetest=0;              /* Amount of free huge pages before testing */
 int aftertest=0;               /* Amount of free huge pages after testing */
-int hugepagesmapped=0;         /* Amount of huge pages mapped after testing */
+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;                 /* loop counter */
-       char *msg;              /* message returned from parse_opts */
-        int Hflag=0;              /* binary flag: opt or not */
        int page_sz=0;
 
-               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. */
-       msg = parse_opts(ac, av, options, &help);
-       if (msg != (char *) NULL) {
-               tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s, use -help", 
msg);
-               tst_exit();
-       }
-
-       if (Hflag == 0) {
-               tst_brkm(TBROK, NULL, "-H option is REQUIRED for this test, use 
-h for options help");
-               tst_exit();
-       }
-
        setup();
 
        for (lc = 0; TEST_LOOPING(lc); lc++) {
@@ -189,18 +166,22 @@ main(int ac, char **av)
  *          Write some known data into file and get the size of the file.
  */
 void
-setup()
+setup(void)
 {
-       char mypid[40];
-
-       sprintf(mypid,"/%d",getpid());
-       TEMPFILE=strcat(mypid,TEMPFILE);
-       TEMPFILE=strcat(Hopt,TEMPFILE);
+       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());
 }
 
 /*
@@ -209,7 +190,7 @@ setup()
  *            Remove the temporary directory created.
  */
 void
-cleanup()
+cleanup(void)
 {
        /*
         * print timing stats if that option was specified.
@@ -218,4 +199,6 @@ cleanup()
 
        unlink(TEMPFILE);
 
+       umount_hugetlbfs(mount_point);
+       tst_rmdir();
 }
-- 
1.7.1


-- 
Best Regards,
Tang chen

------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model 
configuration take the hassle out of deploying and managing Subversion and 
the tools developers use with it. Learn more about uberSVN and get a free 
download at:  http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to