1*a3e078e5SDominic /* -*- c -*- */
2*a3e078e5SDominic /*
3*a3e078e5SDominic * Copyright 2007 - 2011 Dominic Spill, Michael Ossmann
4*a3e078e5SDominic *
5*a3e078e5SDominic * This file is part of libbtbb
6*a3e078e5SDominic *
7*a3e078e5SDominic * This program is free software; you can redistribute it and/or modify
8*a3e078e5SDominic * it under the terms of the GNU General Public License as published by
9*a3e078e5SDominic * the Free Software Foundation; either version 2, or (at your option)
10*a3e078e5SDominic * any later version.
11*a3e078e5SDominic *
12*a3e078e5SDominic * This program is distributed in the hope that it will be useful,
13*a3e078e5SDominic * but WITHOUT ANY WARRANTY; without even the implied warranty of
14*a3e078e5SDominic * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15*a3e078e5SDominic * GNU General Public License for more details.
16*a3e078e5SDominic *
17*a3e078e5SDominic * You should have received a copy of the GNU General Public License
18*a3e078e5SDominic * along with libbtbb; see the file COPYING. If not, write to
19*a3e078e5SDominic * the Free Software Foundation, Inc., 51 Franklin Street,
20*a3e078e5SDominic * Boston, MA 02110-1301, USA.
21*a3e078e5SDominic */
22*a3e078e5SDominic
23*a3e078e5SDominic #ifdef HAVE_CONFIG_H
24*a3e078e5SDominic #include "config.h"
25*a3e078e5SDominic #endif
26*a3e078e5SDominic
27*a3e078e5SDominic #include "../bluetooth_packet.h"
28*a3e078e5SDominic #include <stdio.h>
29*a3e078e5SDominic
test_unfec23()30*a3e078e5SDominic int test_unfec23() {
31*a3e078e5SDominic char *optr;
32*a3e078e5SDominic int i, j, ret, err;
33*a3e078e5SDominic ret = 0;
34*a3e078e5SDominic
35*a3e078e5SDominic printf("Testing unfec23\n");
36*a3e078e5SDominic printf("---------------\n");
37*a3e078e5SDominic
38*a3e078e5SDominic char input[20][15] = {
39*a3e078e5SDominic /* No errors */
40*a3e078e5SDominic {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0},
41*a3e078e5SDominic {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1},
42*a3e078e5SDominic {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
43*a3e078e5SDominic {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0},
44*a3e078e5SDominic {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1},
45*a3e078e5SDominic {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1},
46*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0},
47*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1},
48*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1},
49*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1},
50*a3e078e5SDominic /* Errors */
51*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0},
52*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1},
53*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
54*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0},
55*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1},
56*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1},
57*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0},
58*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1},
59*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1},
60*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1}
61*a3e078e5SDominic };
62*a3e078e5SDominic
63*a3e078e5SDominic char output[20][15] = {
64*a3e078e5SDominic /* No errors */
65*a3e078e5SDominic {1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
66*a3e078e5SDominic {0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
67*a3e078e5SDominic {0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
68*a3e078e5SDominic {0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
69*a3e078e5SDominic {0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
70*a3e078e5SDominic {0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
71*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
72*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
73*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
74*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
75*a3e078e5SDominic /* Errors */
76*a3e078e5SDominic {1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
77*a3e078e5SDominic {0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
78*a3e078e5SDominic {0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
79*a3e078e5SDominic {0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
80*a3e078e5SDominic {0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
81*a3e078e5SDominic {0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
82*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
83*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
84*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
85*a3e078e5SDominic {0, 0, 0, 0, 0, 0, 0, 0, 0, 1}
86*a3e078e5SDominic };
87*a3e078e5SDominic
88*a3e078e5SDominic for(i = 0; i < 20; i++) {
89*a3e078e5SDominic if (optr = unfec23(input[i], 1)) {
90*a3e078e5SDominic err = 0;
91*a3e078e5SDominic for(j = 0; j < 10; j++) {
92*a3e078e5SDominic if (optr[j] != output[i][j]) {
93*a3e078e5SDominic err = 1;
94*a3e078e5SDominic break;
95*a3e078e5SDominic }
96*a3e078e5SDominic }
97*a3e078e5SDominic if (err == 1) {
98*a3e078e5SDominic printf("E");
99*a3e078e5SDominic ret++;
100*a3e078e5SDominic }
101*a3e078e5SDominic else
102*a3e078e5SDominic printf(".");
103*a3e078e5SDominic } else {
104*a3e078e5SDominic printf("F");
105*a3e078e5SDominic ret++;
106*a3e078e5SDominic }
107*a3e078e5SDominic }
108*a3e078e5SDominic
109*a3e078e5SDominic if (ret > 0)
110*a3e078e5SDominic printf("%d errors\n", ret);
111*a3e078e5SDominic printf("\n--------------------\n");
112*a3e078e5SDominic printf("Done testing unfec23\n");
113*a3e078e5SDominic return ret;
114*a3e078e5SDominic }
115*a3e078e5SDominic
main(int argc,char ** argv)116*a3e078e5SDominic int main(int argc, char** argv) {
117*a3e078e5SDominic int ret = 0;
118*a3e078e5SDominic
119*a3e078e5SDominic ret += test_unfec23();
120*a3e078e5SDominic
121*a3e078e5SDominic exit(ret);
122*a3e078e5SDominic }
123