diff options
| author | deraadt <> | 2003-05-15 04:23:49 +0000 |
|---|---|---|
| committer | deraadt <> | 2003-05-15 04:23:49 +0000 |
| commit | 562310c81469da0af76dfaa59981692b0f3710f3 (patch) | |
| tree | 42e6a93dd0e42908c79e503ab9817ac8af8ccb9f /src/regress/lib/libc/sprintf/sprintf_test.c | |
| parent | 8bd3e3e13a059c46d97b80e07aaca1098423dfbf (diff) | |
| download | openbsd-562310c81469da0af76dfaa59981692b0f3710f3.tar.gz openbsd-562310c81469da0af76dfaa59981692b0f3710f3.tar.bz2 openbsd-562310c81469da0af76dfaa59981692b0f3710f3.zip | |
first sprintf test: positional args
Diffstat (limited to 'src/regress/lib/libc/sprintf/sprintf_test.c')
| -rw-r--r-- | src/regress/lib/libc/sprintf/sprintf_test.c | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/regress/lib/libc/sprintf/sprintf_test.c b/src/regress/lib/libc/sprintf/sprintf_test.c new file mode 100644 index 0000000000..1387b2970e --- /dev/null +++ b/src/regress/lib/libc/sprintf/sprintf_test.c | |||
| @@ -0,0 +1,80 @@ | |||
| 1 | /* $OpenBSD: sprintf_test.c,v 1.1 2003/05/15 04:23:49 deraadt Exp $ */ | ||
| 2 | |||
| 3 | /* | ||
| 4 | * Copyright (c) 2003 Theo de Raadt | ||
| 5 | * All rights reserved. | ||
| 6 | * | ||
| 7 | * Redistribution and use in source and binary forms, with or without | ||
| 8 | * modification, are permitted provided that the following conditions | ||
| 9 | * are met: | ||
| 10 | * | ||
| 11 | * - Redistributions of source code must retain the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer. | ||
| 13 | * - Redistributions in binary form must reproduce the above | ||
| 14 | * copyright notice, this list of conditions and the following | ||
| 15 | * disclaimer in the documentation and/or other materials provided | ||
| 16 | * with the distribution. | ||
| 17 | * | ||
| 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | ||
| 21 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
| 22 | * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
| 23 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||
| 24 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
| 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||
| 26 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | ||
| 28 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
| 29 | * POSSIBILITY OF SUCH DAMAGE. | ||
| 30 | */ | ||
| 31 | |||
| 32 | #include <stdio.h> | ||
| 33 | #include <stdlib.h> | ||
| 34 | #include <signal.h> | ||
| 35 | |||
| 36 | char correct[] = | ||
| 37 | "|xx 01 02 03 04\n" | ||
| 38 | "|xx 05 06 07 08\n" | ||
| 39 | "|xx 09 10 11 12\n" | ||
| 40 | "|xx 13 14 15 16\n" | ||
| 41 | "|xx 17 18 19 20\n" | ||
| 42 | "|xx 21 22 23 24\n" | ||
| 43 | "|xx 25 26 27 28\n" | ||
| 44 | "|xx 29 30 31 32\n" | ||
| 45 | "|xx 33 34 35 36\n" | ||
| 46 | "|xx 37 38 39 40\n" | ||
| 47 | "|xx 41 42 43 44\n"; | ||
| 48 | |||
| 49 | int | ||
| 50 | main(int argc, char *argv[]) | ||
| 51 | { | ||
| 52 | char buf[1024]; | ||
| 53 | |||
| 54 | /* Test positional arguments */ | ||
| 55 | snprintf(buf, sizeof buf, | ||
| 56 | "|xx %1$s %2$s %3$s %4$s\n" | ||
| 57 | "|xx %5$s %6$s %7$s %8$s\n" | ||
| 58 | "|xx %9$s %10$s %11$s %12$s\n" | ||
| 59 | "|xx %13$s %14$s %15$s %16$s\n" | ||
| 60 | "|xx %17$s %18$s %19$s %20$s\n" | ||
| 61 | "|xx %21$s %22$s %23$s %24$s\n" | ||
| 62 | "|xx %25$s %26$s %27$s %28$s\n" | ||
| 63 | "|xx %29$s %30$s %31$s %32$s\n" | ||
| 64 | "|xx %33$s %34$s %35$s %36$s\n" | ||
| 65 | "|xx %37$s %38$s %39$s %40$s\n" | ||
| 66 | "|xx %41$s %42$s %43$s %44$s\n", | ||
| 67 | "01", "02", "03", "04", "05", "06", | ||
| 68 | "07", "08", "09", "10", "11", "12", | ||
| 69 | "13", "14", "15", "16", "17", "18", | ||
| 70 | "19", "20", "21", "22", "23", "24", | ||
| 71 | "25", "26", "27", "28", "29", "30", | ||
| 72 | "31", "32", "33", "34", "35", "36", | ||
| 73 | "37", "38", "39", "40", "41", "42", | ||
| 74 | "43", "44" | ||
| 75 | ); | ||
| 76 | |||
| 77 | if (strcmp(buf, correct) == 0) | ||
| 78 | exit(0); | ||
| 79 | exit(1); | ||
| 80 | } | ||
