/* AbiSource Program Utilities * Copyright (C) 1998 AbiSource, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. */ #ifdef UT_TEST #include "ut_debugmsg.h" #include "ut_assert.h" #include "ut_bytebuf.h" #include "ut_test.h" #include "ut_base64.h" /****************************************************************/ /****************************************************************/ static UT_TestStatus t_test_001(void) { // a test case: [1] create a buffer of semi-random data with a // length set to a multiple of 3 bytes. // [2] base64 encode [1]. // [3] base64 decode [2]. // [4] verify that [1] and [3] exactly match. // [5] verify that [2] does not end with the pad char. UT_Byte array1[300]; UT_uint32 k; // [1] for (k=0; (k(k & 0xff); UT_ByteBuf b1; if (!b1.ins(0,array1,G_N_ELEMENTS(array1))) return UT_Test_SystemError; if (b1.getLength() != G_N_ELEMENTS(array1)) return UT_Test_SystemError; // [2] UT_ByteBuf b2; if (!UT_Base64Encode(&b2,&b1)) return UT_Test_SystemError; // [3] UT_ByteBuf b3; if (!UT_Base64Decode(&b3,&b2)) return UT_Test_SystemError; // [4] if (b3.getLength() != b1.getLength()) return UT_Test_Fail; const UT_Byte * p1 = b1.getPointer(0); const UT_Byte * p3 = b3.getPointer(0); for (k=0; (k(k & 0xff); UT_ByteBuf b1; if (!b1.ins(0,array1,G_N_ELEMENTS(array1))) return UT_Test_SystemError; if (b1.getLength() != G_N_ELEMENTS(array1)) return UT_Test_SystemError; // [2] UT_ByteBuf b2; if (!UT_Base64Encode(&b2,&b1)) return UT_Test_SystemError; // [3] UT_ByteBuf b3; if (!UT_Base64Decode(&b3,&b2)) return UT_Test_SystemError; // [4] if (b3.getLength() != b1.getLength()) return UT_Test_Fail; const UT_Byte * p1 = b1.getPointer(0); const UT_Byte * p3 = b3.getPointer(0); for (k=0; (k