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

He Junyan junyan.he at linux.intel.com
Wed May 22 21:24:02 PDT 2013


The single case test works well.
Just use -n XXX



On 05/23/2013 11:36 AM, Sun, Yi wrote:
> 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
>>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
>



More information about the Beignet mailing list