Changeset 561 in openpam


Ignore:
Timestamp:
Apr 2, 2012, 10:17:55 PM (2 years ago)
Author:
des
Message:

need config.h + missing printf() arguments + more tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/t/t_openpam_readword.c

    r557 r561  
    2828 */ 
    2929 
     30#ifdef HAVE_CONFIG_H 
     31# include "config.h" 
     32#endif 
     33 
    3034#include <err.h> 
    3135#include <errno.h> 
     
    118122        } 
    119123        if (lineno != lines) { 
    120                 t_verbose("expected to advance %d lines, advanced %d lines\n"); 
     124                t_verbose("expected to advance %d lines, advanced %d lines\n", 
     125                    lines, lineno); 
    121126                return (0); 
    122127        } 
     
    154159        if (fclose(f) != 0) 
    155160                err(1, "%s(): %s", __func__, filename); 
     161        f = NULL; 
    156162} 
    157163 
     
    347353 
    348354/*************************************************************************** 
    349  * Complex cases 
    350  */ 
     355 * Escapes 
     356 */ 
     357 
     358T_FUNC(naked_escape, "naked escape") 
     359{ 
     360        int ret; 
     361 
     362        orw_open(); 
     363        orw_output("\\"); 
     364        orw_rewind(); 
     365        ret = orw_expect(NULL, 0 /*lines*/, 1 /*eof*/, 0 /*eol*/); 
     366        orw_close(); 
     367        return (ret); 
     368} 
     369 
     370T_FUNC(escaped_escape, "escaped escape") 
     371{ 
     372        int ret; 
     373 
     374        orw_open(); 
     375        orw_output("\\\\\n"); 
     376        orw_rewind(); 
     377        ret = orw_expect("\\", 0 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     378        orw_close(); 
     379        return (ret); 
     380} 
     381 
     382T_FUNC(escaped_whitespace, "escape whitespace") 
     383{ 
     384        int ret; 
     385 
     386        orw_open(); 
     387        orw_output("\\  \\\t \\\r \\\n"); 
     388        orw_rewind(); 
     389        ret = orw_expect(" ", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     390            orw_expect("\t", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     391            orw_expect("\r", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     392            orw_expect("\n", 1 /*lines*/, 1 /*eof*/, 0 /*eol*/); 
     393        orw_close(); 
     394        return (ret); 
     395} 
     396 
     397T_FUNC(escaped_letter, "escaped letter") 
     398{ 
     399        int ret; 
     400 
     401        orw_open(); 
     402        orw_output("\\a\n"); 
     403        orw_rewind(); 
     404        ret = orw_expect("a", 0 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     405        orw_close(); 
     406        return (ret); 
     407} 
     408 
     409 
     410 
     411/*************************************************************************** 
     412 * Quotes 
     413 */ 
     414 
     415T_FUNC(naked_single_quote, "naked single quote") 
     416{ 
     417        int ret; 
     418 
     419        orw_open(); 
     420        orw_output("'"); 
     421        orw_rewind(); 
     422        ret = orw_expect(NULL, 0 /*lines*/, 1 /*eof*/, 0 /*eol*/); 
     423        orw_close(); 
     424        return (ret); 
     425} 
     426 
     427T_FUNC(naked_double_quote, "naked double quote") 
     428{ 
     429        int ret; 
     430 
     431        orw_open(); 
     432        orw_output("\""); 
     433        orw_rewind(); 
     434        ret = orw_expect(NULL, 0 /*lines*/, 1 /*eof*/, 0 /*eol*/); 
     435        orw_close(); 
     436        return (ret); 
     437} 
    351438 
    352439T_FUNC(empty_single_quotes, "empty single quotes") 
     
    374461} 
    375462 
    376  
    377  
     463T_FUNC(quotes_within_quotes, "quotes within quotes") 
     464{ 
     465        int ret; 
     466 
     467        orw_open(); 
     468        orw_output("'\"' \"'\"\n"); 
     469        orw_rewind(); 
     470        ret = orw_expect("\"", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     471            orw_expect("'", 0 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     472        orw_close(); 
     473        return (ret); 
     474} 
     475 
     476T_FUNC(quoted_whitespace, "quoted whitespace") 
     477{ 
     478        int ret; 
     479 
     480        orw_open(); 
     481        orw_output("' ' '\t' '\r' '\n' \" \" \"\t\" \"\r\" \"\n\"\n"); 
     482        orw_rewind(); 
     483        ret = orw_expect(" ", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     484            orw_expect("\t", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     485            orw_expect("\r", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     486            orw_expect("\n", 1 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     487            orw_expect(" ", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     488            orw_expect("\t", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     489            orw_expect("\r", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     490            orw_expect("\n", 1 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     491        orw_close(); 
     492        return (ret); 
     493} 
     494 
     495T_FUNC(quoted_words, "quoted words") 
     496{ 
     497        int ret; 
     498 
     499        orw_open(); 
     500        orw_output("'hello' \"world\"\n"); 
     501        orw_rewind(); 
     502        ret = orw_expect("hello", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     503            orw_expect("world", 0 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     504        orw_close(); 
     505        return (ret); 
     506} 
     507 
     508 
     509 
     510/*************************************************************************** 
     511 * Combinations of escape and quotes 
     512 */ 
     513 
     514T_FUNC(escaped_quotes, "escaped quotes") 
     515{ 
     516        int ret; 
     517 
     518        orw_open(); 
     519        orw_output("\\\" \\'\n"); 
     520        orw_rewind(); 
     521        ret = orw_expect("\"", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     522            orw_expect("'", 0 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     523        orw_close(); 
     524        return (ret); 
     525} 
     526 
     527T_FUNC(escaped_letters_within_quotes, "escaped letters within quotes") 
     528{ 
     529        int ret; 
     530 
     531        orw_open(); 
     532        orw_output("\"\\a\" '\\a'\n"); 
     533        orw_rewind(); 
     534        ret = orw_expect("\\a", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     535            orw_expect("\\a", 0 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     536        orw_close(); 
     537        return (ret); 
     538} 
     539 
     540T_FUNC(escaped_escapes_within_quotes, "escaped escapes within quotes") 
     541{ 
     542        int ret; 
     543 
     544        orw_open(); 
     545        orw_output("\"\\\\\" '\\\\'\n"); 
     546        orw_rewind(); 
     547        ret = orw_expect("\\", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     548            orw_expect("\\", 0 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     549        orw_close(); 
     550        return (ret); 
     551} 
     552 
     553T_FUNC(escaped_quotes_within_quotes, "escaped quotes within quotes") 
     554{ 
     555        int ret; 
     556 
     557        orw_open(); 
     558        orw_output("\"\\\"\" '\\''\n"); 
     559        orw_rewind(); 
     560        ret = orw_expect("\"", 0 /*lines*/, 0 /*eof*/, 0 /*eol*/) && 
     561            orw_expect("'", 0 /*lines*/, 0 /*eof*/, 1 /*eol*/); 
     562        orw_close(); 
     563        return (ret); 
     564} 
     565 
     566 
     567 
     568/*************************************************************************** 
     569 * Boilerplate 
     570 */ 
    378571 
    379572const struct t_test *t_plan[] = { 
     
    384577        T(comment), 
    385578        T(whitespace_before_comment), 
     579 
    386580        T(single_word), 
    387581        T(single_whitespace_before_word), 
     
    392586        T(word_containing_hash), 
    393587        T(two_words), 
     588 
     589        T(naked_escape), 
     590        T(escaped_escape), 
     591        T(escaped_whitespace), 
     592        T(escaped_letter), 
     593 
     594        T(naked_single_quote), 
     595        T(naked_double_quote), 
    394596        T(empty_single_quotes), 
    395597        T(empty_double_quotes), 
     598        T(quotes_within_quotes), 
     599        T(quoted_whitespace), 
     600        T(quoted_words), 
     601 
     602        T(escaped_quotes), 
     603        T(escaped_letters_within_quotes), 
     604        T(escaped_escapes_within_quotes), 
     605        T(escaped_quotes_within_quotes), 
     606 
    396607        NULL 
    397608}; 
Note: See TracChangeset for help on using the changeset viewer.