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