michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: /* michael@0: ** File: lazyinit.c michael@0: ** Description: Test the functions and macros declared in prbit.h michael@0: ** michael@0: */ michael@0: michael@0: #include "nspr.h" michael@0: michael@0: #define ErrorReport(x) { printf((x)); failed = 1; } michael@0: michael@0: prbitmap_t myMap[512/32] = { 0 }; michael@0: michael@0: PRInt32 rc; michael@0: PRInt32 i; michael@0: PRIntn failed = 0; michael@0: michael@0: int main(int argc, char **argv) michael@0: { michael@0: /* michael@0: ** Test bitmap things. michael@0: */ michael@0: if ( PR_TEST_BIT( myMap, 0 )) michael@0: ErrorReport("Test 0.0: Failed\n"); michael@0: michael@0: if ( PR_TEST_BIT( myMap, 31 )) michael@0: ErrorReport("Test 0.1: Failed\n"); michael@0: michael@0: if ( PR_TEST_BIT( myMap, 128 )) michael@0: ErrorReport("Test 0.2: Failed\n"); michael@0: michael@0: if ( PR_TEST_BIT( myMap, 129 )) michael@0: ErrorReport("Test 0.3: Failed\n"); michael@0: michael@0: michael@0: PR_SET_BIT( myMap, 0 ); michael@0: if ( !PR_TEST_BIT( myMap, 0 )) michael@0: ErrorReport("Test 1.0: Failed\n"); michael@0: michael@0: PR_CLEAR_BIT( myMap, 0 ); michael@0: if ( PR_TEST_BIT( myMap, 0 )) michael@0: ErrorReport("Test 1.0.1: Failed\n"); michael@0: michael@0: PR_SET_BIT( myMap, 31 ); michael@0: if ( !PR_TEST_BIT( myMap, 31 )) michael@0: ErrorReport("Test 1.1: Failed\n"); michael@0: michael@0: PR_CLEAR_BIT( myMap, 31 ); michael@0: if ( PR_TEST_BIT( myMap, 31 )) michael@0: ErrorReport("Test 1.1.1: Failed\n"); michael@0: michael@0: PR_SET_BIT( myMap, 128 ); michael@0: if ( !PR_TEST_BIT( myMap, 128 )) michael@0: ErrorReport("Test 1.2: Failed\n"); michael@0: michael@0: PR_CLEAR_BIT( myMap, 128 ); michael@0: if ( PR_TEST_BIT( myMap, 128 )) michael@0: ErrorReport("Test 1.2.1: Failed\n"); michael@0: michael@0: PR_SET_BIT( myMap, 129 ); michael@0: if ( !PR_TEST_BIT( myMap, 129 )) michael@0: ErrorReport("Test 1.3: Failed\n"); michael@0: michael@0: PR_CLEAR_BIT( myMap, 129 ); michael@0: if ( PR_TEST_BIT( myMap, 129 )) michael@0: ErrorReport("Test 1.3.1: Failed\n"); michael@0: michael@0: michael@0: /* michael@0: ** Test Ceiling and Floor functions and macros michael@0: */ michael@0: if ((rc = PR_CeilingLog2(32)) != 5 ) michael@0: ErrorReport("Test 10.0: Failed\n"); michael@0: michael@0: if ((rc = PR_FloorLog2(32)) != 5 ) michael@0: ErrorReport("Test 10.1: Failed\n"); michael@0: michael@0: michael@0: /* michael@0: ** Evaluate results and exit michael@0: */ michael@0: if (failed) michael@0: { michael@0: printf("FAILED\n"); michael@0: return(1); michael@0: } michael@0: else michael@0: { michael@0: printf("PASSED\n"); michael@0: return(0); michael@0: } michael@0: } /* end main() */ michael@0: /* end testbit.c */