[Beignet] [PATCH v2] utest_run: Rewrite the function main, adding the arguments parse.

Sun, Yi yi.sun at intel.com
Wed May 22 20:36:13 PDT 2013


Hi Zhigang,

As Junyan said, I think we needn't change the utest any more. Since
Junyan is going to have ported utest to piglit framework. So you can
just ignore this patch.


Thanks
  --Sun, Yi


On Thu, 2013-05-23 at 11:29 +0800, zhigang gong wrote:
> Hi,
>  
> Just one minor comment, could you keep the single case running mode
> the same as before?
> I think that will be more convenient for the developer.
> 
> 
> On Mon, May 20, 2013 at 3:14 PM, Yi Sun <yi.sun at intel.com> wrote:
>         Add three arguments:
>           -n <casename> : run a single case.
>           -a            : run all sub cases.
>           -l            : list all sub cases name.
>         
>         Signed-off-by: Yi Sun <yi.sun at intel.com>
>         
>         diff --git a/utests/utest.cpp b/utests/utest.cpp
>         index fc3467e..193e931 100644
>         --- a/utests/utest.cpp
>         +++ b/utests/utest.cpp
>         @@ -76,3 +76,13 @@ void UTest::runAll(void) {
>            }
>          }
>         
>         +void UTest::listAllCases()
>         +{
>         +if (utestList == NULL) return;
>         +  for (size_t i = 0; i < utestList->size(); ++i) {
>         +    const UTest &utest = (*utestList)[i];
>         +    if (utest.fn == NULL) continue;
>         +    std::cout << utest.name << std::endl;
>         +  }
>         +
>         +}
>         diff --git a/utests/utest.hpp b/utests/utest.hpp
>         index 338a4dc..5487911 100644
>         --- a/utests/utest.hpp
>         +++ b/utests/utest.hpp
>         @@ -50,6 +50,8 @@ struct UTest
>            static void run(const char *name);
>            /*! Run all the tests */
>            static void runAll(void);
>         +  /* List all the sub cases name*/
>         +  static void listAllCases(void);
>          };
>         
>          /*! Register a new unit test */
>         diff --git a/utests/utest_run.cpp b/utests/utest_run.cpp
>         index e577b7b..3974bbb 100644
>         --- a/utests/utest_run.cpp
>         +++ b/utests/utest_run.cpp
>         @@ -26,19 +26,67 @@
>          #include "utest_helper.hpp"
>          #include "utest_exception.hpp"
>          #include <iostream>
>         +#include <getopt.h>
>         +
>         +static const char *shortopts = "n:la";
>         +struct option longopts[] = {
>         +{"name", required_argument, NULL, 'n'},
>         +{"list", no_argument, NULL, 'l'},
>         +{0, 0, 0, 0},
>         +};
>         +
>         +void usage()
>         +{
>         +    std::cout << "\
>         +Usage:\n\
>         +  ./utest_run <option>\n\
>         +\n\
>         +  option:\n\
>         +    -n <casename>: run sub-case named 'casename'\n\
>         +    -l           : list all the available case name\n\
>         +    -a           : run all test cases\n\
>         +\
>         +    "<< std::endl;
>         +}
>         
>          int main(int argc, char *argv[])
>          {
>         -  try {
>         +
>         +    int c;
>              cl_ocl_init();
>         -    if (argc >= 2)
>         -      for (int i = 1; i < argc; ++i)
>         -        UTest::run(argv[i]);
>         -    else
>         -      UTest::runAll();
>         +
>         +    while ((c = getopt_long (argc, argv, shortopts, longopts,
>         NULL)) != -1)
>         +    {
>         +        switch (c)
>         +        {
>         +            case 'n':
>         +                try {
>         +                    UTest::run(optarg);
>         +                }
>         +                catch (Exception e){
>         +                    std::cout << "  " << e.what() << "
>          [SUCCESS]" << std::endl;
>         +                }
>         +
>         +                break;
>         +
>         +            case 'l':
>         +                UTest::listAllCases();
>         +                break;
>         +
>         +            case 'a':
>         +                try {
>         +                    UTest::runAll();
>         +                }
>         +                catch (Exception e){
>         +                    std::cout << "  " << e.what() << "
>          [SUCCESS]" << std::endl;
>         +                }
>         +
>         +                break;
>         +            default: usage();
>         +                exit(1);
>         +        }
>         +    }
>         +
>              cl_ocl_destroy();
>         -  } catch (Exception e) {
>         -      std::cout << "  " << e.what() << "    [SUCCESS]" <<
>         std::endl;
>         -  }
>          }
>         
>         --
>         1.7.6.4
>         
>         _______________________________________________
>         Beignet mailing list
>         Beignet at lists.freedesktop.org
>         http://lists.freedesktop.org/mailman/listinfo/beignet
> 



More information about the Beignet mailing list