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 30*a3e078e5SDominic int test_syndromes() { 31*a3e078e5SDominic int ret, i; 32*a3e078e5SDominic uint64_t syndrome, syncword; 33*a3e078e5SDominic ret = 0; 34*a3e078e5SDominic 35*a3e078e5SDominic printf("Testing syndromes\n"); 36*a3e078e5SDominic printf("---------------\n"); 37*a3e078e5SDominic 38*a3e078e5SDominic uint64_t input[2] = { 39*a3e078e5SDominic /* No errors */ 40*a3e078e5SDominic 0xcc7b7268ff614e1b, 41*a3e078e5SDominic /* Errors */ 42*a3e078e5SDominic 0xcc7d7268ff614e1b 43*a3e078e5SDominic }; 44*a3e078e5SDominic 45*a3e078e5SDominic uint64_t output[2] = { 46*a3e078e5SDominic /* No errors */ 47*a3e078e5SDominic 0, 48*a3e078e5SDominic /* Errors */ 49*a3e078e5SDominic 0x0000000299c6f9b5 50*a3e078e5SDominic }; 51*a3e078e5SDominic 52*a3e078e5SDominic for(i = 0; i < 2; i++) { 53*a3e078e5SDominic syndrome = gen_syndrome(input[i]); 54*a3e078e5SDominic printf("0x%016llx\n", syndrome); 55*a3e078e5SDominic if (syndrome == output[i]) { 56*a3e078e5SDominic printf("."); 57*a3e078e5SDominic } else { 58*a3e078e5SDominic printf("F"); 59*a3e078e5SDominic ret++; 60*a3e078e5SDominic } 61*a3e078e5SDominic } 62*a3e078e5SDominic 63*a3e078e5SDominic gen_syndrome_map(); 64*a3e078e5SDominic syncword = decode_syncword(0xcc7b7268ff614e1b ^ pn); 65*a3e078e5SDominic printf("Syncword 0x%016llx\n", syncword); 66*a3e078e5SDominic syncword = decode_syncword(0xcc7b7268ff514e1b ^ pn); 67*a3e078e5SDominic printf("Syncword 0x%016llx\n", syncword); 68*a3e078e5SDominic 69*a3e078e5SDominic if (ret > 0) 70*a3e078e5SDominic printf("%d errors\n", ret); 71*a3e078e5SDominic printf("\n--------------------\n"); 72*a3e078e5SDominic printf("Done testing syndrome generation\n"); 73*a3e078e5SDominic return ret; 74*a3e078e5SDominic } 75*a3e078e5SDominic 76*a3e078e5SDominic int main(int argc, char** argv) { 77*a3e078e5SDominic int ret = 0; 78*a3e078e5SDominic 79*a3e078e5SDominic ret += test_syndromes(); 80*a3e078e5SDominic 81*a3e078e5SDominic exit(ret); 82*a3e078e5SDominic } 83