| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_sal.hxx" |
| #include <stdio.h> |
| |
| #include <rtl/process.h> |
| #include <rtl/bootstrap.hxx> |
| #include <rtl/string.hxx> |
| #include <rtl/byteseq.hxx> |
| |
| #include <osl/process.h> |
| |
| using namespace ::rtl; |
| |
| |
| int main( int argc, char *argv[] ) |
| { |
| osl_setCommandArgs (argc, argv); |
| |
| sal_Int32 nCount = rtl_getAppCommandArgCount(); |
| |
| #if OSL_DEBUG_LEVEL > 1 |
| fprintf( stdout, "rtl-commandargs (%d) real args:%i ", nCount, argc); |
| for( sal_Int32 i = 0 ; i < nCount ; i ++ ) |
| { |
| OUString data; |
| rtl_getAppCommandArg( i , &(data.pData) ); |
| OString o = OUStringToOString( data, RTL_TEXTENCODING_ASCII_US ); |
| fprintf( stdout, " %s", o.getStr() ); |
| } |
| fprintf( stdout, "\n" ); |
| #endif |
| |
| if( nCount == 0 ) |
| { |
| printf( "usage : testbootstrap <checkedValueOfMyBootstrapValue>\n" ); |
| exit( 1 ); |
| } |
| |
| |
| OUString iniName; |
| Bootstrap::get(OUString(RTL_CONSTASCII_USTRINGPARAM("iniName")), iniName, OUString()); |
| |
| #if OSL_DEBUG_LEVEL > 1 |
| if(iniName.getLength()) |
| { |
| OString tmp_iniName = OUStringToOString(iniName, RTL_TEXTENCODING_ASCII_US); |
| fprintf(stderr, "using ini: %s\n", tmp_iniName.getStr()); |
| } |
| #endif |
| |
| Bootstrap bootstrap(iniName); |
| |
| |
| OUString name( RTL_CONSTASCII_USTRINGPARAM( "MYBOOTSTRAPTESTVALUE" )); |
| OUString myDefault( RTL_CONSTASCII_USTRINGPARAM("$Default")); |
| |
| OUString value; |
| sal_Bool useDefault; |
| |
| OUString aDummy; |
| useDefault = bootstrap.getFrom(OUString(RTL_CONSTASCII_USTRINGPARAM("USEDEFAULT")), aDummy); |
| |
| sal_Bool result = sal_False; |
| sal_Bool found = sal_True; |
| |
| if(useDefault) |
| bootstrap.getFrom(name, value, myDefault); |
| |
| else |
| found = bootstrap.getFrom(name, value); |
| |
| if(found) |
| { |
| OUString para(OUString::createFromAscii( argv[1] )); |
| |
| result = para == value; |
| |
| if(!result) |
| { |
| OString para_tmp = OUStringToOString(para, RTL_TEXTENCODING_ASCII_US); |
| OString value_tmp = OUStringToOString(value, RTL_TEXTENCODING_ASCII_US); |
| |
| fprintf(stderr, "para(%s) != value(%s)\n", para_tmp.getStr(), value_tmp.getStr()); |
| } |
| } |
| else |
| fprintf(stderr, "bootstrap parameter couldn't be found\n"); |
| |
| // test the default case |
| name = OUString( RTL_CONSTASCII_USTRINGPARAM( "no_one_has_set_this_name" ) ); |
| OSL_ASSERT( ! bootstrap.getFrom( name, value ) ); |
| result = result && !bootstrap.getFrom( name, value ); |
| |
| myDefault = OUString( RTL_CONSTASCII_USTRINGPARAM( "1" ) ); |
| OUString myDefault2 = OUString( RTL_CONSTASCII_USTRINGPARAM( "2" ) ); |
| |
| bootstrap.getFrom( name, value, myDefault ); |
| OSL_ASSERT( value == myDefault ); |
| result = result && (value == myDefault); |
| |
| bootstrap.getFrom( name, value, myDefault2 ); |
| OSL_ASSERT( value == myDefault2 ); |
| result = result && (value == myDefault2); |
| |
| return result; |
| } |