Mercurial > hg > octave-lojdl > gnulib-hg
annotate tests/test-gc-md2.c @ 17460:d11431703671
autoupdate
author | Karl Berry <karl@freefriends.org> |
---|---|
date | Fri, 09 Aug 2013 08:03:30 -0700 |
parents | e542fd46ad6f |
children |
rev | line source |
---|---|
6431 | 1 /* |
17249
e542fd46ad6f
maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents:
16366
diff
changeset
|
2 * Copyright (C) 2005, 2010-2013 Free Software Foundation, Inc. |
6431 | 3 * Written by Simon Josefsson |
4 * | |
5 * This program is free software; you can redistribute it and/or modify | |
6 * it under the terms of the GNU General Public License as published by | |
12520
e84eea643139
tests: fix license on several tests
Eric Blake <ebb9@byu.net>
parents:
12421
diff
changeset
|
7 * the Free Software Foundation; either version 3, or (at your option) |
6431 | 8 * any later version. |
9 * | |
10 * This program is distributed in the hope that it will be useful, | |
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 * GNU General Public License for more details. | |
14 * | |
15 * You should have received a copy of the GNU General Public License | |
16366
bb182ee4a09d
maint: replace FSF snail-mail addresses with URLs
Paul Eggert <eggert@cs.ucla.edu>
parents:
16201
diff
changeset
|
16 * along with this program; if not, see <http://www.gnu.org/licenses/>. */ |
6431 | 17 |
8891
633babea5f62
Unconditionally include <config.h> in unit tests.
Eric Blake <ebb9@byu.net>
parents:
6436
diff
changeset
|
18 #include <config.h> |
6431 | 19 |
20 #include <stdio.h> | |
21 #include <string.h> | |
22 #include "gc.h" | |
23 | |
24 int | |
25 main (int argc, char *argv[]) | |
26 { | |
27 Gc_rc rc; | |
28 gc_hash_handle h; | |
29 | |
30 rc = gc_init (); | |
31 if (rc != GC_OK) | |
32 { | |
33 printf ("gc_init() failed\n"); | |
34 return 1; | |
35 } | |
36 | |
37 /* Test vectors from RFC 1319. */ | |
38 | |
39 { | |
40 char *in = "abcdefghijklmnopqrstuvwxyz"; | |
41 size_t inlen = strlen (in); | |
42 char *expect = | |
43 "\x4e\x8d\xdf\xf3\x65\x02\x92\xab\x5a\x41\x08\xc3\xaa\x47\x94\x0b"; | |
44 char out[16]; | |
45 const char *p; | |
46 | |
47 if (gc_md2 (in, inlen, out) != 0) | |
48 { | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
49 printf ("gc_md2 call failed\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
50 return 1; |
6431 | 51 } |
52 | |
53 if (memcmp (out, expect, 16) != 0) | |
54 { | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
55 size_t i; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
56 printf ("md2 1 mismatch. expected:\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
57 for (i = 0; i < 16; i++) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
58 printf ("%02x ", expect[i] & 0xFF); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
59 printf ("\ncomputed:\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
60 for (i = 0; i < 16; i++) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
61 printf ("%02x ", out[i] & 0xFF); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
62 printf ("\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
63 return 1; |
6431 | 64 } |
65 | |
66 if (gc_hash_buffer (GC_MD2, in, inlen, out) != 0) | |
67 { | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
68 printf ("gc_hash_buffer(MD2) call failed\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
69 return 1; |
6431 | 70 } |
71 | |
72 if (memcmp (out, expect, 16) != 0) | |
73 { | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
74 size_t i; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
75 printf ("md2 2 mismatch. expected:\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
76 for (i = 0; i < 16; i++) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
77 printf ("%02x ", expect[i] & 0xFF); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
78 printf ("\ncomputed:\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
79 for (i = 0; i < 16; i++) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
80 printf ("%02x ", out[i] & 0xFF); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
81 printf ("\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
82 return 1; |
6431 | 83 } |
84 | |
85 if (gc_hash_digest_length (GC_MD2) != 16) | |
86 { | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
87 printf ("gc_hash_digest_length (GC_MD2) failed\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
88 return 1; |
6431 | 89 } |
90 | |
91 if ((rc = gc_hash_open (GC_MD2, 0, &h)) != GC_OK) | |
92 { | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
93 printf ("gc_hash_open(GC_MD2) failed (%d)\n", rc); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
94 return 1; |
6431 | 95 } |
96 | |
97 gc_hash_write (h, inlen, in); | |
98 | |
99 p = gc_hash_read (h); | |
100 | |
101 if (!p) | |
102 { | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
103 printf ("gc_hash_read failed\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
104 return 1; |
6431 | 105 } |
106 | |
107 if (memcmp (p, expect, 16) != 0) | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
108 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
109 size_t i; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
110 printf ("md2 3 mismatch. expected:\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
111 for (i = 0; i < 16; i++) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
112 printf ("%02x ", expect[i] & 0xFF); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
113 printf ("\ncomputed:\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
114 for (i = 0; i < 16; i++) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
115 printf ("%02x ", p[i] & 0xFF); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
116 printf ("\n"); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
8891
diff
changeset
|
117 return 1; |
6431 | 118 } |
119 | |
120 gc_hash_close (h); | |
121 } | |
122 | |
123 gc_done (); | |
124 | |
125 return 0; | |
126 } |