Ticket #1527: ticket1527.patch

File ticket1527.patch, 4.1 KB (added by s.ochsenknecht@…, 13 years ago)

testcase

  • program_options/test/options_description_test.cpp

     
    2222    options_description desc;
    2323    desc.add_options()
    2424        ("foo", value<int>(), "")
    25         ("bar", value<std::string>(), "")
     25        ("bar", value<string>(), "")
    2626        ;
    2727   
    2828    const typed_value_base* b = dynamic_cast<const typed_value_base*>
     
    3333    const typed_value_base* b2 = dynamic_cast<const typed_value_base*>
    3434        (desc.find("bar", false).semantic().get());
    3535    BOOST_CHECK(b2);
    36     BOOST_CHECK(b2->value_type() == typeid(std::string));
     36    BOOST_CHECK(b2->value_type() == typeid(string));
    3737}
    3838
    3939void test_approximation()
     
    7070        "foo foo foo foo foo foo foo foo foo foo foo foo foo foo"
    7171        "foo foo foo foo foo foo foo foo foo foo foo foo foo foo"
    7272        "foo foo foo foo foo foo foo foo foo foo foo foo foo foo"
    73         "foo foo foo foo foo foo foo foo foo foo foo foo foo foo");
     73        "foo foo foo foo foo foo foo foo foo foo foo foo foo foo")
     74      ("list", new untyped_value(),
     75         "a list:\n  \t"
     76             "item1, item2, item3, item4, item5, item6, item7, item8, item9, "
     77             "item10, item11, item12, item13, item14, item15, item16, item17, item18")
     78      ("well_formated", new untyped_value(),
     79                        "As you can see this is a very well formatted option description.\n"
     80                        "You can do this for example:\n\n"
     81                        "Values:\n"
     82                        "  Value1: \tdoes this and that, bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla\n"
     83                        "  Value2: \tdoes something else, bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla\n\n"
     84                        "    This paragraph has a first line indent only, bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla")
     85      ;
    7486
    7587    stringstream ss;
    7688    ss << desc;
     89    BOOST_CHECK_EQUAL(ss.str(),
     90"  --test arg            foo foo foo foo foo foo foo foo foo foo foo foo foo \n"
     91"                        foofoo foo foo foo foo foo foo foo foo foo foo foo foo \n"
     92"                        foofoo foo foo foo foo foo foo foo foo foo foo foo foo \n"
     93"                        foofoo foo foo foo foo foo foo foo foo foo foo foo foo \n"
     94"                        foo\n"
     95"  --list arg            a list:\n"
     96"                          item1, item2, item3, item4, item5, item6, item7, \n"
     97"                          item8, item9, item10, item11, item12, item13, item14, \n"
     98"                          item15, item16, item17, item18\n"
     99"  --well_formated arg   As you can see this is a very well formatted option \n"
     100"                        description.\n"
     101"                        You can do this for example:\n"
     102"                        \n"
     103"                        Values:\n"
     104"                          Value1: does this and that, bla bla bla bla bla bla \n"
     105"                                  bla bla bla bla bla bla bla bla bla\n"
     106"                          Value2: does something else, bla bla bla bla bla bla \n"
     107"                                  bla bla bla bla bla bla bla bla bla\n"
     108"                        \n"
     109"                            This paragraph has a first line indent only, bla \n"
     110"                        bla bla bla bla bla bla bla bla bla bla bla bla bla bla\n"
     111   );
    77112}
    78113
    79114void test_long_default_value()
     
    81116    options_description desc;
    82117    desc.add_options()
    83118        ("cfgfile,c",
    84          value<std::string>()->default_value("/usr/local/etc/myprogramXXXXXXXXX/configuration.conf"),
    85          "the configfile");
     119         value<string>()->default_value("/usr/local/etc/myprogramXXXXXXXXX/configuration.conf"),
     120         "the configfile")
     121       ;
    86122
    87123    stringstream ss;
    88124    ss << desc;
    89125    BOOST_CHECK_EQUAL(ss.str(),
    90126"  -c [ --cfgfile ] arg (=/usr/local/etc/myprogramXXXXXXXXX/configuration.conf)\n"
    91127"                                        the configfile\n"
    92         );
    93 
     128   );
    94129}
    95130
    96131int main(int, char* [])