annotate tests/unilbrk/test-ulc-possible-linebreaks.c @ 40057:b06060465f09

maint: Run 'make update-copyright'
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 01 Jan 2019 00:25:11 +0100
parents 10eb9086bea0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10045
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1 /* Test of line breaking of strings.
40057
b06060465f09 maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
2 Copyright (C) 2008-2019 Free Software Foundation, Inc.
10045
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
4 This program is free software: you can redistribute it and/or modify
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5 it under the terms of the GNU General Public License as published by
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6 the Free Software Foundation; either version 3 of the License, or
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
7 (at your option) any later version.
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
8
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12 GNU General Public License for more details.
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
13
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License
19190
9759915b2aca all: prefer https: URLs
Paul Eggert <eggert@cs.ucla.edu>
parents: 18626
diff changeset
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
10045
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
16
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
17 /* Written by Bruno Haible <bruno@clisp.org>, 2008. */
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
18
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
19 #include <config.h>
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
20
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
21 #include "unilbrk.h"
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
22
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
23 #include <stdlib.h>
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
24
12496
a48d3d749ca5 Refactor common macros used in tests.
Bruno Haible <bruno@clisp.org>
parents: 12421
diff changeset
25 #include "macros.h"
10045
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
26
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
27 int
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
28 main ()
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
29 {
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
30 /* Test case n = 0. */
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
31 ulc_possible_linebreaks (NULL, 0, "GB18030", NULL);
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
32
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
33 #if HAVE_ICONV
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
34 {
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
35 static const char input[36] =
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
36 /* "Grüß Gott. x=(-b±sqrt(b²-4ac))/(2a)" */
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
37 "Gr\374\337 Gott. x=(-b\261sqrt(b\262-4ac))/(2a)\n";
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
38 char *p = (char *) malloc (SIZEOF (input));
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
39 size_t i;
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
40
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
41 ulc_possible_linebreaks (input, SIZEOF (input), "ISO-8859-1", p);
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
42 for (i = 0; i < 36; i++)
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
43 {
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 10063
diff changeset
44 ASSERT (p[i] == (i == 35 ? UC_BREAK_MANDATORY :
14152
c5273d4d49b3 Update to Unicode 5.2.0.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
45 i == 5 || i == 11 || i == 15 || i == 16
c5273d4d49b3 Update to Unicode 5.2.0.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
46 || i == 31 ? UC_BREAK_POSSIBLE :
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 10063
diff changeset
47 UC_BREAK_PROHIBITED));
10045
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
48 }
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
49 free (p);
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
50 }
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
51 #endif
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
52
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
53 return 0;
7b4e1ce17ed3 Tests for module unilbrk/ulc-possible-linebreaks
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
54 }