From 11c9ffa71183e860658705bebc3be80b004d3ba6 Mon Sep 17 00:00:00 2001 From: HyungKyu Song Date: Thu, 14 Feb 2013 21:48:03 +0900 Subject: [PATCH] Tizen 2.0 Release --- AUTHORS | 3 + LICENSE.APLv2 | 205 ++++++ Makefile.am | 41 ++ NOTICE | 4 + TC/_export_env.sh | 30 + TC/build.sh | 20 + TC/execute.sh | 19 + TC/results/0001c/journal | 16 + TC/results/0003c/journal | 16 + TC/results/0005c/journal | 16 + TC/results/0007c/journal | 16 + TC/results/0009c/journal | 16 + TC/results/0011c/journal | 16 + TC/results/0013c/journal | 16 + TC/results/0015c/journal | 16 + TC/results/0017c/journal | 16 + TC/results/0019c/journal | 16 + TC/results/0021c/journal | 16 + TC/results/0023c/journal | 16 + TC/results/build-tar-result-1313476345.html | 92 +++ TC/results/build-tar-result-1313476345.journal | 15 + TC/results/build-tar-result-1313476436.html | 92 +++ TC/results/build-tar-result-1313476436.journal | 15 + TC/results/build-tar-result-1313478621.html | 92 +++ TC/results/build-tar-result-1313478621.journal | 15 + TC/results/build-tar-result-1313483605.html | 92 +++ TC/results/build-tar-result-1313483605.journal | 15 + TC/results/build-tar-result-1313484298.html | 92 +++ TC/results/build-tar-result-1313484298.journal | 15 + TC/results/build-tar-result-1313484369.html | 92 +++ TC/results/build-tar-result-1313484369.journal | 15 + TC/results/build-tar-result-1313484395.html | 92 +++ TC/results/build-tar-result-1313484395.journal | 15 + TC/results/build-tar-result-1313484596.html | 92 +++ TC/results/build-tar-result-1313484596.journal | 16 + TC/results/build-tar-result-1313543556.html | 92 +++ TC/results/build-tar-result-1313543556.journal | 15 + TC/results/build-tar-result-1313543625.html | 92 +++ TC/results/build-tar-result-1313543625.journal | 16 + TC/results/build-tar-result-1316429812.html | 92 +++ TC/results/build-tar-result-1316429812.journal | 16 + TC/results/build-tar-result-1316431101.html | 92 +++ TC/results/build-tar-result-1316431101.journal | 16 + TC/tet_code | 12 + TC/tet_scen | 7 + TC/tetbuild.cfg | 3 + TC/tetclean.cfg | 2 + TC/tetexec.cfg | 1 + TC/unit/Makefile | 23 + TC/unit/tslist | 2 + TC/unit/utc_ApplicationFW___dlog_print_func | Bin 0 -> 31511 bytes TC/unit/utc_ApplicationFW___dlog_print_func.c | 66 ++ TC/unit/utc_ApplicationFW___dlog_vprint_func | Bin 0 -> 31579 bytes TC/unit/utc_ApplicationFW___dlog_vprint_func.c | 76 +++ autogen.sh | 6 + configure.ac | 61 ++ dlog.pc.in | 11 + dlog.sh | 2 + dlogctrl | 59 ++ dlogutil.manifest | 20 + image/SLP_Dlog_PG_image001.png | Bin 0 -> 76426 bytes include/SLP_Dlog_PG.h | 183 ++++++ include/dlog.h | 596 ++++++++++++++++++ include/logger.h | 55 ++ include/logprint.h | 148 +++++ log.c | 231 +++++++ logprint.c | 698 +++++++++++++++++++++ logutil.c | 836 +++++++++++++++++++++++++ packaging/dlog-main.service | 9 + packaging/dlog-radio.service | 9 + packaging/dlog.changes | 10 + packaging/dlog.spec | 131 ++++ packaging/tizen-debug-level.service | 14 + tizen_platform_env.sh | 32 + 74 files changed, 5105 insertions(+) create mode 100755 AUTHORS create mode 100755 LICENSE.APLv2 create mode 100755 Makefile.am create mode 100755 NOTICE create mode 100755 TC/_export_env.sh create mode 100755 TC/build.sh create mode 100755 TC/execute.sh create mode 100644 TC/results/0001c/journal create mode 100644 TC/results/0003c/journal create mode 100644 TC/results/0005c/journal create mode 100644 TC/results/0007c/journal create mode 100644 TC/results/0009c/journal create mode 100644 TC/results/0011c/journal create mode 100644 TC/results/0013c/journal create mode 100644 TC/results/0015c/journal create mode 100644 TC/results/0017c/journal create mode 100644 TC/results/0019c/journal create mode 100644 TC/results/0021c/journal create mode 100644 TC/results/0023c/journal create mode 100644 TC/results/build-tar-result-1313476345.html create mode 100644 TC/results/build-tar-result-1313476345.journal create mode 100644 TC/results/build-tar-result-1313476436.html create mode 100644 TC/results/build-tar-result-1313476436.journal create mode 100644 TC/results/build-tar-result-1313478621.html create mode 100644 TC/results/build-tar-result-1313478621.journal create mode 100644 TC/results/build-tar-result-1313483605.html create mode 100644 TC/results/build-tar-result-1313483605.journal create mode 100644 TC/results/build-tar-result-1313484298.html create mode 100644 TC/results/build-tar-result-1313484298.journal create mode 100644 TC/results/build-tar-result-1313484369.html create mode 100644 TC/results/build-tar-result-1313484369.journal create mode 100644 TC/results/build-tar-result-1313484395.html create mode 100644 TC/results/build-tar-result-1313484395.journal create mode 100644 TC/results/build-tar-result-1313484596.html create mode 100644 TC/results/build-tar-result-1313484596.journal create mode 100644 TC/results/build-tar-result-1313543556.html create mode 100644 TC/results/build-tar-result-1313543556.journal create mode 100644 TC/results/build-tar-result-1313543625.html create mode 100644 TC/results/build-tar-result-1313543625.journal create mode 100644 TC/results/build-tar-result-1316429812.html create mode 100644 TC/results/build-tar-result-1316429812.journal create mode 100644 TC/results/build-tar-result-1316431101.html create mode 100644 TC/results/build-tar-result-1316431101.journal create mode 100755 TC/tet_code create mode 100755 TC/tet_scen create mode 100755 TC/tetbuild.cfg create mode 100755 TC/tetclean.cfg create mode 100755 TC/tetexec.cfg create mode 100644 TC/unit/Makefile create mode 100644 TC/unit/tslist create mode 100755 TC/unit/utc_ApplicationFW___dlog_print_func create mode 100644 TC/unit/utc_ApplicationFW___dlog_print_func.c create mode 100755 TC/unit/utc_ApplicationFW___dlog_vprint_func create mode 100644 TC/unit/utc_ApplicationFW___dlog_vprint_func.c create mode 100755 autogen.sh create mode 100755 configure.ac create mode 100755 dlog.pc.in create mode 100644 dlog.sh create mode 100755 dlogctrl create mode 100644 dlogutil.manifest create mode 100755 image/SLP_Dlog_PG_image001.png create mode 100755 include/SLP_Dlog_PG.h create mode 100755 include/dlog.h create mode 100755 include/logger.h create mode 100755 include/logprint.h create mode 100755 log.c create mode 100755 logprint.c create mode 100755 logutil.c create mode 100644 packaging/dlog-main.service create mode 100644 packaging/dlog-radio.service create mode 100644 packaging/dlog.changes create mode 100755 packaging/dlog.spec create mode 100644 packaging/tizen-debug-level.service create mode 100755 tizen_platform_env.sh diff --git a/AUTHORS b/AUTHORS new file mode 100755 index 0000000..2190840 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,3 @@ +juho son +Suchang Woo +kyungmin Park diff --git a/LICENSE.APLv2 b/LICENSE.APLv2 new file mode 100755 index 0000000..8aa906c --- /dev/null +++ b/LICENSE.APLv2 @@ -0,0 +1,205 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + + + diff --git a/Makefile.am b/Makefile.am new file mode 100755 index 0000000..c16223f --- /dev/null +++ b/Makefile.am @@ -0,0 +1,41 @@ + + +if SD_JOURNAL_SUPPORT +AM_CFLAGS = @CFLAGS@ -I$(srcdir)/include \ + -I$(srcdir)/include/internal -DSD_JOURNAL_SUPPORT +else +AM_CFLAGS = @CFLAGS@ -I$(srcdir)/include \ + -I$(srcdir)/include/internal +endif + +dlog_includedir = $(includedir)/dlog +dlog_include_HEADERS = \ + include/dlog.h + +lib_LTLIBRARIES = libdlog.la + +libdlog_la_SOURCES = \ + log.c \ + include/dlog.h + +if SD_JOURNAL_SUPPORT +libdlog_la_LIBADD = -lpthread -lsystemd-journal +else +libdlog_la_LIBADD = -lpthread +endif +bin_PROGRAMS= dlogutil + +dlogutil_SOURCES = \ + logutil.c \ + logprint.c \ + include/logger.h \ + include/logprint.h + +# conf file +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = dlog.pc + +bootscriptdir = /etc/rc.d/init.d +bootscript_SCRIPTS = dlog.sh + + diff --git a/NOTICE b/NOTICE new file mode 100755 index 0000000..a8b23d8 --- /dev/null +++ b/NOTICE @@ -0,0 +1,4 @@ +Copyright (c) The Android Open Source Project +Copyright (c) Samsung Electronics Co., Ltd. All rights reserved. +Except as noted, this software is licensed under Apache License, Version 2. +Please, see the LICENSE.APLv2 file for Apache License terms and conditions. diff --git a/TC/_export_env.sh b/TC/_export_env.sh new file mode 100755 index 0000000..b354434 --- /dev/null +++ b/TC/_export_env.sh @@ -0,0 +1,30 @@ +# Customize below path information +TET_INSTALL_PATH=/scratchbox/TETware + +TET_SIMUL_PATH=$TET_INSTALL_PATH/tetware-simulator +TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target +TET_MOUNTED_PATH=/mnt/nfs/TETware/tetware-target + +MACHINE=`echo $SBOX_UNAME_MACHINE` + +if [ $MACHINE = "i686" ] # Scratchbox i686 +then + export ARCH=simulator + export TET_ROOT=$TET_SIMUL_PATH +elif [ $MACHINE = "arm" ] # Scratchbox ARM +then + export ARCH=target + export TET_ROOT=$TET_TARGET_PATH +else + export ARCH=target + export TET_ROOT=$TET_MOUNTED_PATH +fi + +export PATH=$TET_ROOT/bin:$PATH +export LD_LIBRARY_PATH=$TET_ROOT/lib/tet3:$LD_LIBRARY_PATH + +set $(pwd) +export TET_SUITE_ROOT=$1 + +set $(date +%y%m%d_%H%M%S) +FILE_NAME_EXTENSION=$1 diff --git a/TC/build.sh b/TC/build.sh new file mode 100755 index 0000000..8518d22 --- /dev/null +++ b/TC/build.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +export TET_INSTALL_PATH=/home/jeesun1981/TETware # local tetware path +export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target +export PATH=$TET_TARGET_PATH/bin:$PATH +export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH +export TET_ROOT=$TET_TARGET_PATH + +export TET_SUITE_ROOT=`pwd` +FILE_NAME_EXTENSION=`date +%s` + +RESULT_DIR=results +HTML_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.html +JOURNAL_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.journal + +mkdir -p $RESULT_DIR + +tcc -c -p ./ +tcc -b -j $JOURNAL_RESULT -p ./ +grw -c 3 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/execute.sh b/TC/execute.sh new file mode 100755 index 0000000..6720da0 --- /dev/null +++ b/TC/execute.sh @@ -0,0 +1,19 @@ +#!/bin/sh +export TET_INSTALL_PATH=/mnt/nfs/tetware +export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target +export PATH=$TET_TARGET_PATH/bin:$PATH +export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH + +export TET_ROOT=$TET_TARGET_PATH + +export TET_SUITE_ROOT=`pwd` +FILE_NAME_EXTENSION=`date +%s` + +RESULT_DIR=results +HTML_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.html +JOURNAL_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.journal + +mkdir -p $RESULT_DIR + +tcc -e -j $JOURNAL_RESULT -p ./ +grw -c 3 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/results/0001c/journal b/TC/results/0001c/journal new file mode 100644 index 0000000..c07345e --- /dev/null +++ b/TC/results/0001c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 06:32:25 20110816|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 06:32:25|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 06:32:26|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 06:32:26|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 06:32:27|Clean End, scenario ref 2-0 +900|06:32:27|TCC End diff --git a/TC/results/0003c/journal b/TC/results/0003c/journal new file mode 100644 index 0000000..72ba285 --- /dev/null +++ b/TC/results/0003c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 06:33:56 20110816|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 06:33:56|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 06:33:57|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 06:33:57|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 06:33:58|Clean End, scenario ref 2-0 +900|06:33:58|TCC End diff --git a/TC/results/0005c/journal b/TC/results/0005c/journal new file mode 100644 index 0000000..0c3f893 --- /dev/null +++ b/TC/results/0005c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 07:10:21 20110816|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 07:10:21|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 07:10:22|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 07:10:22|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 07:10:23|Clean End, scenario ref 2-0 +900|07:10:23|TCC End diff --git a/TC/results/0007c/journal b/TC/results/0007c/journal new file mode 100644 index 0000000..46588e5 --- /dev/null +++ b/TC/results/0007c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 08:33:25 20110816|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 08:33:25|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 08:33:26|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:33:26|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 08:33:27|Clean End, scenario ref 2-0 +900|08:33:27|TCC End diff --git a/TC/results/0009c/journal b/TC/results/0009c/journal new file mode 100644 index 0000000..3f985a0 --- /dev/null +++ b/TC/results/0009c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 08:44:58 20110816|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 08:44:58|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 08:44:59|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:44:59|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 08:45:00|Clean End, scenario ref 2-0 +900|08:45:00|TCC End diff --git a/TC/results/0011c/journal b/TC/results/0011c/journal new file mode 100644 index 0000000..3bb98f0 --- /dev/null +++ b/TC/results/0011c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 08:46:09 20110816|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 08:46:09|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 08:46:10|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:46:10|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 08:46:11|Clean End, scenario ref 2-0 +900|08:46:11|TCC End diff --git a/TC/results/0013c/journal b/TC/results/0013c/journal new file mode 100644 index 0000000..9526a07 --- /dev/null +++ b/TC/results/0013c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 08:46:35 20110816|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 08:46:35|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 08:46:36|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:46:36|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 08:46:37|Clean End, scenario ref 2-0 +900|08:46:37|TCC End diff --git a/TC/results/0015c/journal b/TC/results/0015c/journal new file mode 100644 index 0000000..b956ab6 --- /dev/null +++ b/TC/results/0015c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 08:49:56 20110816|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 08:49:56|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 08:49:57|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:49:57|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 08:49:58|Clean End, scenario ref 2-0 +900|08:49:58|TCC End diff --git a/TC/results/0017c/journal b/TC/results/0017c/journal new file mode 100644 index 0000000..76434ad --- /dev/null +++ b/TC/results/0017c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 01:12:37 20110817|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 01:12:37|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 01:12:38|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 01:12:38|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 01:12:39|Clean End, scenario ref 2-0 +900|01:12:39|TCC End diff --git a/TC/results/0019c/journal b/TC/results/0019c/journal new file mode 100644 index 0000000..c21859e --- /dev/null +++ b/TC/results/0019c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 01:13:46 20110817|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 01:13:46|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 01:13:47|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 01:13:47|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 01:13:48|Clean End, scenario ref 2-0 +900|01:13:48|TCC End diff --git a/TC/results/0021c/journal b/TC/results/0021c/journal new file mode 100644 index 0000000..0b246d9 --- /dev/null +++ b/TC/results/0021c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 10:56:52 20110919|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-11-generic #49-Ubuntu SMP Mon Aug 29 20:47:58 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 10:56:52|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 10:56:53|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 10:56:53|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 10:56:54|Clean End, scenario ref 2-0 +900|10:56:54|TCC End diff --git a/TC/results/0023c/journal b/TC/results/0023c/journal new file mode 100644 index 0000000..dc72006 --- /dev/null +++ b/TC/results/0023c/journal @@ -0,0 +1,16 @@ +0|3.7-lite 11:18:21 20110919|User: root (0) TCC Start, Command line: tcc -c -p ./ +5|Linux jeesun1981-desktop 2.6.38-11-generic #49-Ubuntu SMP Mon Aug 29 20:47:58 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetclean.cfg 2|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_CLEAN_TOOL=make clean +30||TET_API_COMPLIANT=True +30||TET_PASS_TC_NAME=False +30||TET_VERSION=3.7-lite +40||Config End +300|0 /unit/utc_ApplicationFW___dlog_print_func 11:18:21|Clean Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|0 0 11:18:22|Clean End, scenario ref 1-0 +300|1 /unit/utc_ApplicationFW___dlog_vprint_func 11:18:22|Clean Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +320|1 0 11:18:23|Clean End, scenario ref 2-0 +900|11:18:23|TCC End diff --git a/TC/results/build-tar-result-1313476345.html b/TC/results/build-tar-result-1313476345.html new file mode 100644 index 0000000..c8393f3 --- /dev/null +++ b/TC/results/build-tar-result-1313476345.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-16
Start time:06:32:27

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success1
Failure1
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcFailure

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313476345.journal b/TC/results/build-tar-result-1313476345.journal new file mode 100644 index 0000000..6cc4e98 --- /dev/null +++ b/TC/results/build-tar-result-1313476345.journal @@ -0,0 +1,15 @@ +0|3.7-lite 06:32:27 20110816|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313476345.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 06:32:27|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 06:32:28|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 06:32:28|Build Start, scenario ref 2-0 +130|1 2 06:32:29|Build End, scenario ref 2-0 +900|06:32:29|TCC End diff --git a/TC/results/build-tar-result-1313476436.html b/TC/results/build-tar-result-1313476436.html new file mode 100644 index 0000000..033a73a --- /dev/null +++ b/TC/results/build-tar-result-1313476436.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-16
Start time:06:33:58

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success1
Failure1
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcFailure

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313476436.journal b/TC/results/build-tar-result-1313476436.journal new file mode 100644 index 0000000..38c483f --- /dev/null +++ b/TC/results/build-tar-result-1313476436.journal @@ -0,0 +1,15 @@ +0|3.7-lite 06:33:58 20110816|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313476436.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 06:33:58|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 06:33:59|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 06:33:59|Build Start, scenario ref 2-0 +130|1 2 06:34:00|Build End, scenario ref 2-0 +900|06:34:00|TCC End diff --git a/TC/results/build-tar-result-1313478621.html b/TC/results/build-tar-result-1313478621.html new file mode 100644 index 0000000..5186b6d --- /dev/null +++ b/TC/results/build-tar-result-1313478621.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-16
Start time:07:10:23

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success1
Failure1
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcFailure

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313478621.journal b/TC/results/build-tar-result-1313478621.journal new file mode 100644 index 0000000..cb26d96 --- /dev/null +++ b/TC/results/build-tar-result-1313478621.journal @@ -0,0 +1,15 @@ +0|3.7-lite 07:10:23 20110816|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313478621.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 07:10:23|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 07:10:24|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 07:10:24|Build Start, scenario ref 2-0 +130|1 2 07:10:25|Build End, scenario ref 2-0 +900|07:10:25|TCC End diff --git a/TC/results/build-tar-result-1313483605.html b/TC/results/build-tar-result-1313483605.html new file mode 100644 index 0000000..ca03965 --- /dev/null +++ b/TC/results/build-tar-result-1313483605.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-16
Start time:08:33:27

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success1
Failure1
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcFailure

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313483605.journal b/TC/results/build-tar-result-1313483605.journal new file mode 100644 index 0000000..f8de10d --- /dev/null +++ b/TC/results/build-tar-result-1313483605.journal @@ -0,0 +1,15 @@ +0|3.7-lite 08:33:27 20110816|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313483605.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 08:33:27|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 08:33:28|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:33:28|Build Start, scenario ref 2-0 +130|1 2 08:33:29|Build End, scenario ref 2-0 +900|08:33:29|TCC End diff --git a/TC/results/build-tar-result-1313484298.html b/TC/results/build-tar-result-1313484298.html new file mode 100644 index 0000000..2ed880e --- /dev/null +++ b/TC/results/build-tar-result-1313484298.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-16
Start time:08:45:00

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success1
Failure1
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcFailure

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313484298.journal b/TC/results/build-tar-result-1313484298.journal new file mode 100644 index 0000000..c8a7252 --- /dev/null +++ b/TC/results/build-tar-result-1313484298.journal @@ -0,0 +1,15 @@ +0|3.7-lite 08:45:00 20110816|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313484298.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 08:45:00|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 08:45:01|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:45:01|Build Start, scenario ref 2-0 +130|1 2 08:45:02|Build End, scenario ref 2-0 +900|08:45:02|TCC End diff --git a/TC/results/build-tar-result-1313484369.html b/TC/results/build-tar-result-1313484369.html new file mode 100644 index 0000000..280b232 --- /dev/null +++ b/TC/results/build-tar-result-1313484369.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-16
Start time:08:46:11

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success1
Failure1
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcFailure

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313484369.journal b/TC/results/build-tar-result-1313484369.journal new file mode 100644 index 0000000..e7ef163 --- /dev/null +++ b/TC/results/build-tar-result-1313484369.journal @@ -0,0 +1,15 @@ +0|3.7-lite 08:46:11 20110816|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313484369.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 08:46:11|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 08:46:12|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:46:12|Build Start, scenario ref 2-0 +130|1 2 08:46:13|Build End, scenario ref 2-0 +900|08:46:13|TCC End diff --git a/TC/results/build-tar-result-1313484395.html b/TC/results/build-tar-result-1313484395.html new file mode 100644 index 0000000..46e4e87 --- /dev/null +++ b/TC/results/build-tar-result-1313484395.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-16
Start time:08:46:37

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success1
Failure1
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcFailure

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313484395.journal b/TC/results/build-tar-result-1313484395.journal new file mode 100644 index 0000000..0f8a711 --- /dev/null +++ b/TC/results/build-tar-result-1313484395.journal @@ -0,0 +1,15 @@ +0|3.7-lite 08:46:37 20110816|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313484395.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 08:46:37|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 08:46:38|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:46:38|Build Start, scenario ref 2-0 +130|1 2 08:46:39|Build End, scenario ref 2-0 +900|08:46:39|TCC End diff --git a/TC/results/build-tar-result-1313484596.html b/TC/results/build-tar-result-1313484596.html new file mode 100644 index 0000000..daf77a5 --- /dev/null +++ b/TC/results/build-tar-result-1313484596.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-16
Start time:08:49:58

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success2
Failure0
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcSuccess

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313484596.journal b/TC/results/build-tar-result-1313484596.journal new file mode 100644 index 0000000..c7caefe --- /dev/null +++ b/TC/results/build-tar-result-1313484596.journal @@ -0,0 +1,16 @@ +0|3.7-lite 08:49:58 20110816|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313484596.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 08:49:58|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 08:49:59|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 08:49:59|Build Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|1 0 08:50:00|Build End, scenario ref 2-0 +900|08:50:00|TCC End diff --git a/TC/results/build-tar-result-1313543556.html b/TC/results/build-tar-result-1313543556.html new file mode 100644 index 0000000..5272b94 --- /dev/null +++ b/TC/results/build-tar-result-1313543556.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-17
Start time:01:12:39

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success1
Failure1
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcFailure

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313543556.journal b/TC/results/build-tar-result-1313543556.journal new file mode 100644 index 0000000..9970841 --- /dev/null +++ b/TC/results/build-tar-result-1313543556.journal @@ -0,0 +1,15 @@ +0|3.7-lite 01:12:39 20110817|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313543556.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 01:12:39|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 01:12:42|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 01:12:42|Build Start, scenario ref 2-0 +130|1 2 01:12:43|Build End, scenario ref 2-0 +900|01:12:43|TCC End diff --git a/TC/results/build-tar-result-1313543625.html b/TC/results/build-tar-result-1313543625.html new file mode 100644 index 0000000..326a503 --- /dev/null +++ b/TC/results/build-tar-result-1313543625.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l
Date of test run:2011-08-17
Start time:01:13:48

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success2
Failure0
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcSuccess

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1313543625.journal b/TC/results/build-tar-result-1313543625.journal new file mode 100644 index 0000000..0d59201 --- /dev/null +++ b/TC/results/build-tar-result-1313543625.journal @@ -0,0 +1,16 @@ +0|3.7-lite 01:13:48 20110817|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1313543625.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 01:13:48|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 01:13:49|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 01:13:49|Build Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|1 0 01:13:50|Build End, scenario ref 2-0 +900|01:13:50|TCC End diff --git a/TC/results/build-tar-result-1316429812.html b/TC/results/build-tar-result-1316429812.html new file mode 100644 index 0000000..2281d3f --- /dev/null +++ b/TC/results/build-tar-result-1316429812.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-11-generic #49-Ubuntu SMP Mon Aug 29 20:47:58 UTC 2011 armv7l
Date of test run:2011-09-19
Start time:10:56:54

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success2
Failure0
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcSuccess

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1316429812.journal b/TC/results/build-tar-result-1316429812.journal new file mode 100644 index 0000000..696cb08 --- /dev/null +++ b/TC/results/build-tar-result-1316429812.journal @@ -0,0 +1,16 @@ +0|3.7-lite 10:56:54 20110919|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1316429812.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-11-generic #49-Ubuntu SMP Mon Aug 29 20:47:58 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 10:56:54|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 10:56:55|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 10:56:55|Build Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|1 0 10:56:56|Build End, scenario ref 2-0 +900|10:56:56|TCC End diff --git a/TC/results/build-tar-result-1316431101.html b/TC/results/build-tar-result-1316431101.html new file mode 100644 index 0000000..ed6e3d2 --- /dev/null +++ b/TC/results/build-tar-result-1316431101.html @@ -0,0 +1,92 @@ + + + +TETware Test Run Report + + +

+

+TETware Test Run Report

+

+ + + + + + + + + + + + + + + + +
TETware version:3.7-lite
System Information:Linux jeesun1981-desktop 2.6.38-11-generic #49-Ubuntu SMP Mon Aug 29 20:47:58 UTC 2011 armv7l
Date of test run:2011-09-19
Start time:11:18:23

+ +
+

+
+Build mode summary

+

+ + + + + + + + + + + + + + + + +
ResultCount
Success2
Failure0
Total2

+

+
+Execute mode summary

+

+ + + +
No results

+ +
+

+
+Build mode result breakdown

+

+ + + + + + + + + + + + +
TestcaseResult
/unit/utc_ApplicationFW___dlog_print_funcSuccess
/unit/utc_ApplicationFW___dlog_vprint_funcSuccess

+ +
+

+
+Execute mode result breakdown

+

+ + + +
No results

+ +
+ + diff --git a/TC/results/build-tar-result-1316431101.journal b/TC/results/build-tar-result-1316431101.journal new file mode 100644 index 0000000..9e3ae1a --- /dev/null +++ b/TC/results/build-tar-result-1316431101.journal @@ -0,0 +1,16 @@ +0|3.7-lite 11:18:23 20110919|User: root (0) TCC Start, Command line: tcc -b -j results/build-tar-result-1316431101.journal -p ./ +5|Linux jeesun1981-desktop 2.6.38-11-generic #49-Ubuntu SMP Mon Aug 29 20:47:58 UTC 2011 armv7l|System Information +20|/home/jeesun1981/sbs110323/repo110323/dlog/TC/./tetbuild.cfg 0|Config Start +30||TET_OUTPUT_CAPTURE=False +30||TET_BUILD_TOOL=make +30||TET_PASS_TC_NAME=True +30||TET_API_COMPLIANT=True +30||TET_VERSION=3.7-lite +40||Config End +110|0 /unit/utc_ApplicationFW___dlog_print_func 11:18:23|Build Start, scenario ref 1-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|0 0 11:18:24|Build End, scenario ref 1-0 +110|1 /unit/utc_ApplicationFW___dlog_vprint_func 11:18:24|Build Start, scenario ref 2-0 +50||(jnlproc.c, 206): can't open /home/jeesun1981/sbs110323/repo110323/dlog/TC/./unit/tet_xres: No such file or directory +130|1 0 11:18:25|Build End, scenario ref 2-0 +900|11:18:25|TCC End diff --git a/TC/tet_code b/TC/tet_code new file mode 100755 index 0000000..a2cf6c1 --- /dev/null +++ b/TC/tet_code @@ -0,0 +1,12 @@ +# TET reserved codes +0 "PASS" +1 "FAIL" +2 "UNRESOLVED" +3 "NOTINUSE" +4 "UNSUPPORTED" +5 "UNTESTED" +6 "UNINITIATED" +7 "NORESULT" + +# Test suite additional codes +33 "INSPECT" diff --git a/TC/tet_scen b/TC/tet_scen new file mode 100755 index 0000000..43cbc9b --- /dev/null +++ b/TC/tet_scen @@ -0,0 +1,7 @@ +all + ^TEST +##### Scenarios for TEST ##### + +# Test scenario +TEST + :include:/unit/tslist diff --git a/TC/tetbuild.cfg b/TC/tetbuild.cfg new file mode 100755 index 0000000..6192c78 --- /dev/null +++ b/TC/tetbuild.cfg @@ -0,0 +1,3 @@ +TET_OUTPUT_CAPTURE=False +TET_BUILD_TOOL=make +TET_PASS_TC_NAME=True diff --git a/TC/tetclean.cfg b/TC/tetclean.cfg new file mode 100755 index 0000000..c66eda4 --- /dev/null +++ b/TC/tetclean.cfg @@ -0,0 +1,2 @@ +TET_OUTPUT_CAPTURE=False +TET_CLEAN_TOOL=make clean diff --git a/TC/tetexec.cfg b/TC/tetexec.cfg new file mode 100755 index 0000000..0d9d39a --- /dev/null +++ b/TC/tetexec.cfg @@ -0,0 +1 @@ +TET_OUTPUT_CAPTURE=False diff --git a/TC/unit/Makefile b/TC/unit/Makefile new file mode 100644 index 0000000..7be4c17 --- /dev/null +++ b/TC/unit/Makefile @@ -0,0 +1,23 @@ +CC ?= gcc + +TARGETS = utc_ApplicationFW___dlog_print_func \ + utc_ApplicationFW___dlog_vprint_func + +PKGS = dlog + +LDFLAGS = `pkg-config --libs $(PKGS)` +LDFLAGS += $(TET_ROOT)/lib/tet3/tcm_s.o +LDFLAGS += -L$(TET_ROOT)/lib/tet3 -ltcm_s +LDFLAGS += -L$(TET_ROOT)/lib/tet3 -lapi_s + +CFLAGS = -I. `pkg-config --cflags $(PKGS)` +CFLAGS += -I$(TET_ROOT)/inc/tet3 +CFLAGS += -Wall + +all: $(TARGETS) + +$(TARGETS): %: %.c + $(CC) -o $@ $< $(CFLAGS) $(LDFLAGS) + +clean: + rm -f $(TARGETS) diff --git a/TC/unit/tslist b/TC/unit/tslist new file mode 100644 index 0000000..0d9e63d --- /dev/null +++ b/TC/unit/tslist @@ -0,0 +1,2 @@ +/unit/utc_ApplicationFW___dlog_print_func +/unit/utc_ApplicationFW___dlog_vprint_func diff --git a/TC/unit/utc_ApplicationFW___dlog_print_func b/TC/unit/utc_ApplicationFW___dlog_print_func new file mode 100755 index 0000000000000000000000000000000000000000..0bc23045d89e228a0f5d93e6216bca2a12bfcbd1 GIT binary patch literal 31511 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 literal 0 HcmV?d00001 diff --git a/TC/unit/utc_ApplicationFW___dlog_print_func.c b/TC/unit/utc_ApplicationFW___dlog_print_func.c new file mode 100644 index 0000000..589c4f9 --- /dev/null +++ b/TC/unit/utc_ApplicationFW___dlog_print_func.c @@ -0,0 +1,66 @@ +#include +#include "dlog.h" +#define LOG_BUF_SIZE 1024 +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_ApplicationFW___dlog_print_func_01(void); +static void utc_ApplicationFW___dlog_print_func_02(void); + +enum { + POSITIVE_TC_IDX = 0x01, + NEGATIVE_TC_IDX, +}; + +struct tet_testlist tet_testlist[] = { + { utc_ApplicationFW___dlog_print_func_01, POSITIVE_TC_IDX }, + { utc_ApplicationFW___dlog_print_func_02, NEGATIVE_TC_IDX }, + { NULL, 0 } +}; + +//static int pid; + +static void startup(void) +{ +} + +static void cleanup(void) +{ +} + +/** + * @brief Positive test case of __dlog_print() + */ +static void utc_ApplicationFW___dlog_print_func_01(void) +{ + int r = 0; + + r = __dlog_print(LOG_ID_MAIN, DLOG_DEBUG,"DLOG_TEST", "dlog test message for tetware\n"); + + if (r<0) { + tet_printf("__dlog_print() failed in positive test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case of ug_init __dlog_print() + */ +static void utc_ApplicationFW___dlog_print_func_02(void) +{ + int r = 0; + + r = __dlog_print( LOG_ID_MAX , DLOG_DEBUG,"DLOG_TEST", "dlog test message for tetware\n"); + + if (r>=0) { + tet_printf("__dlog_print() failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} diff --git a/TC/unit/utc_ApplicationFW___dlog_vprint_func b/TC/unit/utc_ApplicationFW___dlog_vprint_func new file mode 100755 index 0000000000000000000000000000000000000000..e1f88d86df34614176e15c5f094cbcf62b18d89d GIT binary patch literal 31579 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 literal 0 HcmV?d00001 diff --git a/TC/unit/utc_ApplicationFW___dlog_vprint_func.c b/TC/unit/utc_ApplicationFW___dlog_vprint_func.c new file mode 100644 index 0000000..9e4a30b --- /dev/null +++ b/TC/unit/utc_ApplicationFW___dlog_vprint_func.c @@ -0,0 +1,76 @@ +#include +#include +#include "dlog.h" +#define LOG_BUF_SIZE 1024 +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_ApplicationFW___dlog_vprint_func_01(void); +static void utc_ApplicationFW___dlog_vprint_func_02(void); + +enum { + POSITIVE_TC_IDX = 0x01, + NEGATIVE_TC_IDX, +}; + +struct tet_testlist tet_testlist[] = { + { utc_ApplicationFW___dlog_vprint_func_01, POSITIVE_TC_IDX }, + { utc_ApplicationFW___dlog_vprint_func_02, NEGATIVE_TC_IDX }, + { NULL, 0 } +}; + +static int pid; +char *fmt = "dlog test message for tetware\n"; + +static void startup(void) +{ +} + +static void cleanup(void) +{ +} +/** + * @brief Positive test case of __dlog_vprint() + */ +void utc_ApplicationFW___dlog_vprint_func_01(void) +{ + int r = 0; + char buf[LOG_BUF_SIZE]; + va_list ap; + + /* va_start(ap, fmt);*/ + + r = __dlog_vprint(LOG_ID_MAIN, DLOG_DEBUG, "DLOG_TEST", buf, ap ); + /* va_end(ap);*/ + + if (r<0) { + tet_printf("__dlog_vprint() failed in positive test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case of ug_init __dlog_vprint() + */ +void utc_ApplicationFW___dlog_vprint_func_02(void) +{ + int r = 0; + char buf[LOG_BUF_SIZE]; + va_list ap; +// va_start(ap, fmt); + + r = __dlog_vprint(LOG_ID_MAX, DLOG_DEBUG,"DLOG_TEST", fmt, ap ); +// va_end(ap); + + if (r>=0) { + tet_printf("__dlog_vprint() failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..798eba2 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,6 @@ +aclocal +libtoolize --copy +autoheader +autoconf +automake --add-missing --copy --foreign + diff --git a/configure.ac b/configure.ac new file mode 100755 index 0000000..186a593 --- /dev/null +++ b/configure.ac @@ -0,0 +1,61 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.61) +AC_INIT([dlog], [1.0], yk.yun@samsung.com) +AM_INIT_AUTOMAKE([-Wall -Werror foreign]) +AC_CONFIG_HEADERS([config.h:config.hin]) + +AC_CONFIG_MACRO_DIR([m4]) +# Init XO +PLATFORM_INIT + +# Checks for programs. +dnl AC_PROG_CXX +m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) +AC_PROG_CC +AC_PROG_GCC_TRADITIONAL +AC_PROG_LIBTOOL + +# checks arch +AM_CONDITIONAL(DEVELOP_VER, test $DEVELOP_VER = yes) + +SD_JOURNAL_SUPPORT=no + +#AC_DEFINE([SD_JOURNAL_SUPPORT], [], [Description]) + +AM_CONDITIONAL(SD_JOURNAL_SUPPORT, test $SD_JOURNAL_SUPPORT = yes) + +#AM_CONDITIONAL([ARCH_IS_ARM], [test "x$ARCH" = "xarm"]) +if test "x$ARCH" = "xarm" ; then + DLOG_CFLAGS="-D__arm__" +else + DLOG_CFLAGS= +fi + +AC_SUBST(DLOG_CFLAGS) + + +dnl AC_SUBST(ACLOCAL_AMFLAGS, "-I m4") +# Checks for libraries. +# Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS([stdlib.h unistd.h ]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL +AC_C_CONST +AC_C_INLINE +AC_STRUCT_TM +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T + +# Checks for library functions. +AC_FUNC_MALLOC +AC_FUNC_STAT +AC_CHECK_FUNCS([memset]) + +# output files +AC_CONFIG_FILES([Makefile dlog.pc]) +AC_OUTPUT diff --git a/dlog.pc.in b/dlog.pc.in new file mode 100755 index 0000000..1fcb33b --- /dev/null +++ b/dlog.pc.in @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: dlog +Description: logging service +Version: 1.0 +Requires: +Libs: -L${libdir} -ldlog -lpthread +Cflags: -I${includedir}/dlog diff --git a/dlog.sh b/dlog.sh new file mode 100644 index 0000000..9676793 --- /dev/null +++ b/dlog.sh @@ -0,0 +1,2 @@ +#!/bin/sh +/usr/bin/dlogutil -r 5120 -n 1 -f /var/log/dlog -v threadtime *:W & diff --git a/dlogctrl b/dlogctrl new file mode 100755 index 0000000..169527d --- /dev/null +++ b/dlogctrl @@ -0,0 +1,59 @@ +#!/bin/sh +MODE=none +OBJ=none +VAL=none +#echo "tizen_platform_dlog_logging_ctrl" +case "$1" in +get) + MODE=get +;; +set) + MODE=set +;; + +*) +echo "Usage: dlogctrl {get|set} {platformlog} {1|0}" +exit 1 +esac + +case "$2" in +platformlog) + OBJ=platformlog +;; +*) + echo "Usage: dlogctrl {get|set} {platformlog} {1|0}" +exit 1 +esac + +if [ "$MODE" = "set" ]; then + case "$3" in + 1) + VAL=1 + ;; + 0) + VAL=0 + ;; + *) + echo "Usage: dlogctrl {get|set} {platformlog} {1|0}" + exit 1 + esac +fi + +if [ "$MODE" = "set" ]; then + if [ "$OBJ" = "platformlog" ] && [ "$VAL" = "1" ] ; then + touch /opt/etc/dlog/.platformloggingmode 2>/dev/null + elif [ "$OBJ" = "platformlog" ] && [ "$VAL" = "0" ] ; then + rm -f /opt/etc/dlog/.platformloggingmode 2>/dev/null + fi +else + if [ "$OBJ" = "platformlog" ]; then + if [ -e "/opt/etc/dlog/.platformloggingmode" ]; then + echo 1 + else + echo 0 + fi + fi + echo "You must reboot this target to apply the change!" +fi + +exit 0 diff --git a/dlogutil.manifest b/dlogutil.manifest new file mode 100644 index 0000000..4a53c45 --- /dev/null +++ b/dlogutil.manifest @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/image/SLP_Dlog_PG_image001.png b/image/SLP_Dlog_PG_image001.png new file mode 100755 index 0000000000000000000000000000000000000000..7bdd14c2c7ed9ee172dbe5c2d5051f66f95536f2 GIT binary patch literal 76426 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

<~DA)fwU?L$aUH@rm+nLE= z8rX%F#h?4ogUwJ(jI<OC|WN{$5Ey>4c8ypRZsZ$kcgmR81Kb^WZf`!=vp?|HC=T*PUWm;PVJ04HP|=Zs={mz;FzyNJ;3#^VY`rQo8A-C3lIyF>enZl|RFAyThTb8F5aY?f~ER?1QcRHWG< ze1Y@>=#tK1WRGsb7q`*S)#&e87XXL489kMOZIlUl!z>Z7^cAX9<Q2;n`cU~~8z}=Dd^Q-T3 zNqE;5)1Mz;t=MD<|I%~DerhE{f78UHp+UC6980>e@I!w3f9Waaus2INUh(1pv~oqW z(6ESJ>*F+nxk4Vrrs3XPsrlj~D0-|r3~NR785mLQ)%XzwbBFs_I3<@rlo{91)-(jA zcN>D$;xhQ>Qy_D7$+G)BP7F7hvh*0RUiT_ZAhjU&iy?+DHp!lbUW{wzo7B=;qL8}w zUx%d;mXFWX&=eNozaFRw@h3~U-`jtGWXefJ=fllfa>vqmc(krdO_e7TPMX<0w!;Jc8Jzh8~u?6NB(y+Wnq6iq0N7&}4G%j zM_96siSzUeyy)Bm7$%cv@nTPV8;J!=Ps%Mzyo9(o1l;0OXcalGyf2Gw!?f z0Nwa6QON+9sOCcS^b5duY|*A)2Hc9H&GLSaSV|u=vj8@}rt1WvJR2nx^$~slJPc<2V_U z(AfjOxAbQc*wCv$02-+>-azT$S4g2tE{#2UxWEu&L?up76f=Tx5Wd3x+)F_cDbjXF zRM{U=I+n^Q4?wT@n*cM~%FZO#4dDMAd@W7PY3r zL_a_rqmiuRUR^nL%WMcX%u*Qv`BUw^=Ul!lVbkNqkZuO*sLAacdZJ3cIP#2XA8yI%kOSDrbu=*`0oN^u-+<=bfkx?pS3UkWp&xH|By4?72o61(~CP>C!v(64dU9i(<985G40T)L*U{=6Q)CDu!rJf zt=+p&sk82#WxiJSH|yuy)EOM?5YzD+C*fUc_#3qutLJ1Yc2siJ(1o+THODl@rfbzd zK9)g6QtYjc3?f_+l&f4FjC>5zjWNSn9Cor}c|Dql{{;ue;eBw!%rsEl^A^4$exIB1 zp$+ft{EBb4k@eYJMdkyEp*KLH?;lQPUD=H4*X3HR1_{kYV^t)DVJ;j2mext4FBL&Ui)g%+TI+rRSX{7(>h;t`%a*5@TW7u=DP{sT(wdSMQMN_)6bvFq_-vMY8(< zA3>zqtv<^ri|?YJu@1UDW&IsekO?GHPxGmMPB)UhJtseXMM2-bK|xE!FFMlTZwl~j zI2Ijty%X&xlMa*+KTj;~_-EJ?am4HV_`BvO^lNC*;Ay}g70J`^lKS><$&*o`7$rp6 zy?Zgrs}okDhgf-HDf^~@$QxuxvfR$c8p4^U>Du_LI53hVZn;K0}}giK@cM_3i?XBkOFB{d+PxH(Zm$@yY> zJb_YCIb?ku7w=NQTLcvM8Kspb1p6K@Hi>*Adcha4>q-pZRD-Yqswrm!8cZ&e+%6-09nn(iG-8jX`#l!VeR-_zd9 z&zOjmS*Yd_{VN?JCOhFx`|RX2)L}SdkzB}K9b&fY6xokHJwFUHbAK9Z@K;IYHo16$ zlm0C>kN?XC+xI8s{@?FK z1Q~4IkJJ3Ee({W=&KdpK^iZH73UNdsJx@A}$NXfn@%esxT$B<3n}AQEl2UfZGMRv^ zkrS$|*tL)kaRwrd9@OAumdQ=pkQSclg>|*i ztY-|j;JH-RtelZypv*`&?uNi8=mgZC+v*AI@LT^IK#_v25psdce=4$XOAH;J=;_SW z7f&3CD-OCCz#tH95}x{@q|RDOGMAMzJ$^To%y4*1b4c<#Yf(fjv)V*PAubPo`?$uX zXv<7sqAn=GicClkzGCW=F)5PS&uvqZGeoe)ItFO25X} zY_SenCcA(dhR_tBvI%F$BbQG5=}Qq$rA2I99-WCYGxa5kR%q=>X)<-R%21mCNXD$y zfGD+cw4{n}ga>T^)#s$FW`gVvU)R!B#HajhsgoDLkR!}v*nQK{KT0^SmOnkX9G2|)g;UGj?@{8jj2>K z+-b$-_$G3B7oPahJ5uIX0GC<0LoKBodlpvYzA5g+9nYBLrf`M4r%NowM&L?`dd1x# zC|=7F=jk(y<;?DT;2q@f_D2hdg{)H9i5g4Qe@dJ6#!JxH4y3LRLh{^lPVv7m#;$I_ z!7isOQfHfHN&i%b)G)foo;)@xbTT$IcLoxA)`TZ}YpBR7MJ+hh8~#mUVN3ygr6P@q z`eHARqbxd+b(CLzl=}ttOYn=Z#)O%Vg%c`tkCPgt~bu1h_ZDAZcjxLK7 zCIzHhQsTnljTun}!D-q95a-}76Cmg0by3R^i^ZjcN(sPhwmtxFPR}=G_ihoLA}G2| z-&b|+H@CbeB}splke{$0MX=e@flo(h{}urlju`FI>%*->L~jY|2Kvh;q=j}Im_vWE z)_u;#Qnky+b9wP#FGd#opQrGp5G?Jw7`pNfMPg4&86cBttZosW=2G6jJ&^6bsUq7$ z(w-iZN-UFRc?}pJdX#R>kHgY!s08hMIqCTQjovlOOU8^76wo1d zn3YoeDU+P%-QMSaslyrU$^l=$p@}ysbvAh=&Jd4@9uj?$Y%r(8rd5X=reHMOkkg(3 zpaEk{AaI!sKZyET@LB}@N_4q*b}^A!F%+uUG0^R^TS&Br2jQRzueHjd(tnBc)+rl{ zTK0%&t02Qb@^a1((T8_k5ybIv(zM(52|t9s+(~RpCfq;fvt*teZEx1dCFVqNEB{~; zP%Lk14xgU%6;T5RcLE}$j+PrsaxB@=nh&-M1MqAFTk>V1EHLF{Ig#J>H->gQ0A=T( zD#J&vxEkQP5KYLb2E9F@d^JKo3fRZ`7bpIPb82YFmXM>9k=R&4LqdVjYhMXhE9In( zq?SVv5U6eo)%*!m2&#hfm=dQRKsQAHA`w}K`t)lktJ_V7Y0CA2kFXbd5zp7HrZ zEQ_JXgk!f={R_42ffDXgmle|$WIIolT)lMHLThwi_HPvR3z<~nh)IrGv8pv z=W>K|#s90OOm65i>EX-ya$NLKzin`TxDvs;rjcX{+3S17mU4m+whv(8wu22%v3ElH zh>_nkwyaadaK^Cik0jZ>JsE<2JdvXul78Y`u}{+RJTMvHVVgbs_8MWtB3mFIi0lkz zx7=$Q*NT%1(t~Dcn)rS+cpMlCl-!}lKVhv~+)}37r zA#v~L-Xn?09sLR+gWj%r74Y33J6KfBrP0jod(d5bea>#7N%_x$nZ||JI4`Yn#_ zB*ThRR zB$qNhMnPV>W((`kX#I@ILN+(%dJcKbt>0oL8R<58hUeDV)7{FPvxSE06soP?mq|AH zAcImYsQjbhn4&=6waL+HRYlKz!%g$I+@#t~WG6AuSqRbrs(sQfGXZNLrEhdFT7~;@ zRo@^mt_7i&8q3wky20C73GT&5u^d-uQj9&(gQ3*L4RgQYj^ay2kEcqnS1mFJT>4+s zyzm$%+$}86LvVwK%6AK-Lh4V9a|JrGRp%G(fP#336K{axYJm^*=OEvvuK2Ti{M&pn z1&`VAJ7)lzI~Qn;I*5_w=HM5RPOtLnYTIC$zmR+0rmlw!i z0?q2(e7L5(OCNutB|eLyVKu!l%MRAb;H23{=(t=mC{;K!plBD^L(7i+I@#xRwl;S~ zuYfpo1`U7;ej$5PRgtwp1aY}OU0GsyS9PqtAPB4c>4~9j)m6sDe+}C_3$@{BE?CY# zSF)I^t0KXA=TqT}>%GUl#}1?06^tw?Nl@1)>Fo6~%lpcbz%vCo5L8uNcgHgZTr#5Q z%l`wYY#?P7H9#4lhkYq-&6&I8&#hdg@4(A}PVFIBe9Heqp*k~M?m3ImZ+GJLgKqTL zK80wojO5~=<>hT&(p)ahB)(S%=a;CYg}bvA_A3Kl(Yf~WB)yESB_V#QH@s3VT!V$0 zYY#t9WHCP?6^%bvUa5I6ZhC#fYcS22bbXXD)*8v5JT6oN&q~n@vQ6RfvQ2Dt0C?h2 zB?&xnnW(xBsl>E355w+9uAO*gB18?z`_#9-30{U8&v7{A+`{vVevyW{SS9zT)``mSJp;WG4%EH zH!$%-S=Aidl3LDWjv~6N5Dp^rzu#qd$~g6RdHimVIYxh%+K=+ZfYYM9&xJ_TkV#s~ z3u7>O^C*`=rv#7|+O+_J1gT!HSljfUh~H@5SwbtS&T}IjIp$Ajq)ew1fdLieLT%^C zps_zJ-#65_>%G0)E+CSDe24=&p(`T+G2>x;b|aGs!!-skUVZ*cxl&jSaBPO%h@39q z?BvxK?5&s35$*c^wXNsrR$7{%(~`SRv4CxlLeG_@X@lGI*=nn}UHAK^hC-NwGkihI z@C#rSteL`LeMsSYy+84n0p81?{MA-q^9;aH7K6;&RFzW!mJHe7dh#lRBn+B!z?H8H zK;gDooE|O!BMVPQHju_$roPX4W(dDFNz(l^#CHFSN$~MJz!A{FpQI2sLP)*2PFeuJ zoC=Tg@#j~27O=NcR4eN$E(lwskp(+p1%03lec`hp>ow>BZjg54v2_Et%Zswj&Ic4z zXjT~D>b5g{$fmT;94$pm_h&rao3J{X9rS~sLpH~~ItuF<%&TuM>>a=uPBFq9W43tP zX$|#)g9xVxt5L#9738Rd=j>Xo*+lK&7FEmQ3(9Q|Z;6kp;ZJTiNpB7X(r#&N^IlFj zoldffMa@8GOTMIui*?M2*>uou^9oG}abAowP<`Wh)71ePW1v-pTQKzZdDjeQT(^=D#m6+gn0a`E{0Dw&%K%M@ZPe2JU$-1hYxUR5&4k<(Z!DwpGD_% zUDD$jbr&I?Y0h4L!w*)YppiuSKY!$Ocp(>#<6=fSTYy2!X;M5be+)ptt8)g&fKwvx z0Fqf4j;FnL1;$e&ar3tMU2TzauHp*M#kVoN>Jt*`8hsR{qkCa;uZE;Ady`MDXwz

;9LkX&o|V&5pwcT1RLwxA(H-LS<{_`lUW>)=BPYKRBW(BhJD z+k{xr@Vy=sskfTn+>3`j&q<5;sFgU_o7|nuw2jy18exwr&*_5^t0Y1l-5+GrOT|XQ6Sw;zg{E-ZpLzXIRp`z%OoCnx$PJhX+@q}OwehJEMR|N z0U9YkzblICR z$CPgGV(#$D*?usGG$ZWqH7kErDtlu66llz3N-OnpU!pK4@$wmb(UW!Qa`NM#)-91o zEI~n6UWWSL2GwX$+wk_J}6%Rvu z9da?sQG#+mg1KFGoG-zb?lElr-oOixWm#Zsq~6$(f#eWfzyHa$cvK(plx5e?NwD=1s6=_NDu3_aZ>I|4c5)raB32ArOxFwS}8N*e)D& z{fU2v^GimxDnVfnZ_3-)bOC)NoLd0cA>(x&Qk>V4e^6u1YI}}+p+vMMu&Z%@vBO## zZRB!1zv1}Y8uMaDy0zGS1<>4Yu1=QbRyd;oC4s;8>6wR~kL5l8;8Tov@72K+@rGn# zw^v9|aKg)f%q7up6yql;B|8wBjA^{TXA#R;*Wnms#F^DF;ZrHJuHn-<7w%pH&Ea<< zXV%K&rkqZxsPIrd74=1A;T*-Qs3uET{f3t}P^5Ab(E4SBpu#C`!k!nC#5$nk9U6O- zW*JL5jp`}uHxuz`{(be4%|fLw7m3@{r#giC%uehv$}Po$U7+N~vcg*PS(Q&OWxSY3 zdh>}lvlkk56h;Tnul~?PZ5#VVJ;Xehei^2N0nl@Gh0)EYqyZ4^w&10*p{K(%GGcpo^DhJDK~-LO(JmKtWE0ac}r?FqH(Y-1)^ zO4g#erof_Te+n7nL6|2%nE5%#W=K-`H^BQD_|-U_y=Gq%9qEtyZ8Xp^Cu7$bXK%kK z=l9?J+e*Krt0rK|L$X~zX;@fn<(eORB{7o zSdcG)#YdeaDqm=F*sC2gXNnbne;fbWNPCZD7x^luNI5m4o)p+PBR0NNey^;i0d{-V z65StRmu3iG0&}znElEpMp|aE|xFuq5!FxGfJJbswBnL6%tyQe+iszL1pJdREWVLOj z#VYX&emuFb^*&4O1($BGWGIJ4N*m=D89@lvO_H4p&yKPdyC@IrtUR15gRDAA)vhO@ z4Qfm|@#8)>;fy#c?m3Y8ZH>qRL5YDAgF}Sz^2otJ)Hx%x_ZS-%7Da-U<^6Qf%Ho2= zq7-(K`M1u3g?3P$>IBA=+2F-a_V>l!KJE1=lFL|QQ^YWBNOOuIdpBAxF#InL`-VxR&VEQ=%)qQvw1@q6dgcdoS87 zkgC+8kI3O?T==*RA}rH0ie^5k0DLCRqUUM!2JdrZPmIIk+9Pk;?}xLyRUb)SuDQ9R zinEuSMg7BF)>ZBhj(-;hFi-zHC6>6}Ns6qJGq0wc9iiE3(?_CN3(M`4)%Fw6=Ul8x z7J7w5O+K5U#GhZ~5#)ZakM*+osYSF9jlNO9*g#iG)$z+F>84c=RYOqHrsd49@EdV& zDz1ZXKNnDAlr`12bty_k82Y$mYk46;f(`ZPG{@2Wpa>q{Z?KpdY%~2>cL3BBI|l+m zYBl#ODE-v}^?6^%#ULFRsAL`zMj)md|n*4iCkQ2MP!n=mVQW0NHD_R!*z_t+#Oh4ZMGP!$hNxD@dD|%*6>u*noHzQsqV01 zCv1>bl)P#0xYL+fJX_WJ=2WgvZpm%j?5`C=q8{O%X{ySTLrRjHf1|F#=`$T>QKkNs z3_5q1ZCD%o5AOQmJ+xUb=dyGhgmO&ftC}<<7F^Q%Y^RI(akdPGZghKLj-P_I;APkW1j%}X$pr=&e2rv;}9T=0el`ZqiDR=8sz5sN8? zm5q6vj$i-Vd?un8X*E*TwOYBxereLN5ZO8TZ)=U_s^SfuTfpq zXz4h^c#4zWk*Kd@&%%+Kemujt#%`Urzm{g-o4k{~Frr?lyKSoIC1VVNtiZILRS!w{$M#;) z9??E*I9LQv+S}++?blMwnOz5IE(e#5!`g-i#lbn@07y{Yi=H5Kzq^X-2Jq}RRu%qU zw)=~6>M39p@`h&ZyvsJ7r)vn9%nsCK3=10^HRp|Jij>XkvHMv zj7{#g-hkuhufAFr@K6@Yj%kmp7=qo6}{G*kB|-( zvJP*~g92}8IE;D5yLi&_xx(K#*Hez_0ioQ4SAVAD7@iBgLmMx3*U;?+Yfhv#c~Vy%o3w!3=;@X#BLGKTMt0FE`alC5b#kP8^dcrxl94S zBPy?)6X9``_-P zS%1$0EZHtxG`hCwKNAM}?!K4xNJrEqh^$TW>hwx`P%fb2gwPB9r6x}<^I5Dd0-wCy z8|*J4NH}I*VJ@xU&ANAj>F3W_(Y6UqM(H>($2k*ESTESmHh}P0wK;XflUz2nF7Cl` zzjPt9F4Y#2hV+o0Jis6jt$SPkA4_Ky)mGcB(co6BxLYZ%g%%Bg;_hz6-QC?O4lVBP zP~2MF-Q8V-L*UPM#u>TET`u<6JNtdsv*uI~yi3N~^@F-*ouKn{amce`k4#wac~yNA@Y@B$NfyS$)2uU=CsbAgngMo@?j)nHZrO`IS{KG&p> zf)Du<@1=?CASgMiBtf>n@;3-p=5wle1b zEN0}#4k)0^4!hS5WUBJEUBtE1r=*Ls_eGUvJ3*qG(MzXmqP7gLv<-iX z>6bnD_4CU7hnX2u5tH={sVrP`d$vw|{MURhwyM0ts)fU~ismR?bp;H4KJ_rjvxIDd zPyF$JwIK*~_+R1wo|P`$f;3MrIp69$LZBpS(v(luvubI&%oLb&^hlx$W!0iw2bp%g zhnwbQpcU_Thb8~!0{|ulTX%jWyMXMDBKY!x$Q5av8 zAe-xV6@Wn^@UL{2-6xdn+C<;-p-4{w-K03}tfbwlz)_5>{KwMq?9 z22WyT5%YicXI1&^eK}JGeUj(h$0eYiw7)bcO_iq(0!@_VAi!`^P}}-ccM<8SHHG5P zn1o~jxH_v8$VmTm;5Qy`SGzH%2kXq5 z|L1>`NBvz*S)}Q@Uiw+)sNz=_<;}4Hp^0<@yJEoz^dC=vR|;KZzNkloZTP$U=I12t zz#k0E50dvDpb`^**3 zR(2B@SMn|Z+1$=Cztv+__!dV-8jUb9xH*&_tTRGuo>L^{d)V(Z+A#Mu{|D%kujC+e zRwf$Kck<4DLTe6r7eA$-)KoH*A=(AMAz)o&iTwO#2tGbMZnw&|ai@31mrducnm92` z_zYz7A*&_yo_~`@LF<4O5o$^k65r=rMB9L?UE^L# zj&(o9fO*1B8%6_Ok%_R+!M3poyz}JEjO(6Pkqz-z9umd_Bhm-hM>BUezZ)DPU)gO+ z8>{rR%R8LPaL;npGk+4lZf&rp&x*Q>hci9B`#o5<0B5^iK*3yV`Kd4Bi8Zz$>CH6} zVw+!|;{;!GZ59zuX%vJi%H%|xSr$;yH1HQ+f9CIh!?O03-@At*MfRp+ue%^$oWlg> zzthaDm3iH$vw-!hcS)=6VTp5SM#st}&<4S>RRswS`cp&vn-yv$=XH6}9{w$7a~WyI zr;a0x_|sMm2Bo0;1f|aVB3YeIJ@OWC)2~1EW_YL(U2!7V)+UKvXBBesh7p|FmV1In z%Lyxnv4j7zH`+4&7O6YI9Ctr_!#i-&<4pK8$?8O?(f+L{aA9QnPhT3xK3u;}6MomH zJe2gVJ)nUI-v<{^@uNJVfZm3;j>$AFgYA*d_n-e;Z~?P{+Q%L}=(a0=+S-vS9Eq@B z@v|SKrwPu*@o$ShJv~fw-nyd`lyys*>Lby)A=Q^+3Do%vCWkJdqapBSFSKoVm`H$rK-IsZQdAF zo`=+v_c+y@3^g8g9%m6u%2c6h7$U7+{$J*`mv`R>XLquP&SpDzfrpJwp&V!vBKybX zpG9z{v!C_(ruHb}=GRZo!QmA_h@54CfZH!+Ee=`>T%d(;v_029CwJq|5ttY({pO3q z+Kb+Pe~_wq@KMa<&<#BmK4R3_>28+_!n9;Z!IjbxKr~izcc+kYfb`F|qo>)o?S~Cx z*-Y`+WJ3x2dvSEX^#nqiq(>NCdKJCz`_s-XAwBpZh|QT{bYIB>f%TqI5lDS+DG>5Z zXMN}*CMo*X=KEVSICn5RO+CKu;dT(#wv<=V4VsS-%#qD_ilF5GWf{f?F0IT9&&aG2Ha-GLFUG+xDWDb^ud&pK(Yy2Pos##M;o4 zAAw){PQT#RJj<|XWbwIHSvT8#wHRV2;Z_RVtm(E*GVicwE3rv3@3K$Y$hMvAxNm#q zS6D{qWNkcv2JmUe2)t;&5Mig-48L)8%bE{u{k{L2Xu8A48Wr^2cgxC7p$AS4^!AnN zYLix$dFhac^0i_zr9fYIR3X)h%pVh``hf>*Xr@A=oCBdfIg_A!{Q*A3|uzNsQ;d^t!X89lCq*&>g= zl-JQ?KX?j+l3$VPVdjCg3x}fv;7bNj9k@`)f{tqf!6KYtf) znwVLcUHy+QuH%Q}*mfHpqQ;%Z+#0%!e zZNyPPKWv!8>#mW60zN~#!4Fs_xIu_(z)+>FV7k`ooH^sb$eNcTFjX@gUs_D92>&?q z>RRUr@QcxmQqq2Xo2xJUBZBR%cSfo_nx&0VtDZkIUbRU2)0Vnd3@1u2QmUe6&F|z@ zaFwxdvpnjL?b_65xvZvOwCvR#6H|eYp7D>SPd93)^n%NHO_uW~vT16cvjIXN3Q#az zR8;#yv^RSruh`0BmdC2Ba~&CV!}aFu4b_(`((j=9m=?Eby(7{D#3=zjq~9=jJ2o&^sD(_&@{~K1nilb5rC*XPd9yM&%E|Iva_JS!G*S!0=KCdOJ_XJ>1ekSWiBM| zL{X&yczRorw%+xx-voG+Nd#eUp~DC~{<|)oySK}p(%1LrW>mZj;k=9=?Xu=p5fe@IuhnEq%GTrYVd%Jw<@NFl*nw=`{Ws0x3s)AQ z&@GyA$SGmC=M2SSLzN6KqW+bWgWOrG=Z~Hz-tTP0emP`3uU_8Q5*+d2+vW|esi&&+A`dadKW^9*+p0Ms_7~TEA)$- zfB@efHcb7yN)9|QEzF*y&lkZ{v!|0naAn4@$|^eXOl}6^dr{$sXuQ{J#*zt75xURt z%ngj9dI9kgLgW|9@l+O+zUU?dQIi$hc^c`>r=g3KgC&c&3U+ ztdy+rm(lEk;1H)VrY{r7`yEKHmr03W@|v$q0I(YR19Oph`{mCFH@KlrWzS0?AA7pT z;+pDmU9`J!YY(AIbkiMP^%V2a{P+7IzI{TFvN z1E~ttLPk~oz?}9FGV&atTjmMYg|nb|3W#bDC`4@&*%n;=jgE7N=qa2axSFwEY$PG| zoC92HivD-|#=K5f6wGfB+L=q}2n1(Vmv^K^5Q9sY<5^B>yh-r<69R7wQJwzGN+T@W z8I8d0J;NRBQb&Xyd1uM&afz3aE>;b44p%if6PZGuO+5EpbvC8c{q8@Jd}WrR-A#&p z<{>z8ygsiROsujupuJXXh2vONEfkO2Kvp4!E;(en2Gkpp)&$9^>@Tyn(!j~tjen-u z1%&zTYfmUZfNnWLZ1+BIaYei)#X|P4kJj$1V6h!Z|+Lq3c_w^BH!I9o#x4C9jDj-i(O6GDno{UM` zVroskCi&Z66e-@|j<9?vJ*WUQcvY>iURK2x%lhX~SsH>^~o1!UocNSd!Q*mGW-L!WU+{$Ht(LZ zj&jd+Vt@WNve;rJ1DK0qGB&*RB~J`HvO^S8p{f z_Y|mquob=E)cE|{tTaxwkGK_vW;YHD60iXg`t$%@SzoRc0@C!K_DHCB-NkSCs81}| zl0F6%2#f#|W3CCpz#BG%2@c%n(HEdLH`0O30j4UhRl2^6h3O|+MGm>UYX*&}JRLzo zex0!Jm^kcw#!hNOKghaB`N?kT;21e+DbD`)gGCC~VL0)r?{td1z^u*5mxLdU z&B={%dkBvBVn3|Ty?)=|rn6|{1inl4(iBkEkmy62SZrrEXwM6HFPCrdnBJ(Sn{0}otyYE6NrKyH?l z0La;l$&q<8@vlnKm1;c)u|C1c)38N?Ej|t83(35?#BlMCop&8Qc>8OQDIRyHeqS>z|NDE>~P1ogR1$$p$Z&AKlsRnWW5j~u*$uT@P9fXR* z=R9#CWkd1|15rO0%hd)=J&Aao3ef-5jL2JBOO*~N0>xkD#HLQm)ubmV+FT4fcE=ypmFAGc&Wji@3F8ePqC0OJ@!bz572@fHgnIYwO_SDhL*pdy(yuzs*e85%G5A_7<8`1q-2<11m#()&vhXio7 zr$FLdwTc`@8v355;_~Q+eRYVO5m-AOh{BCNd4X~nUCqn((MX%SZOB&x-{IJ6u-$z- zbz9Ig#L3;7E+8p*5-`NGg6Ja-zNm

g7d0NGs>@h6;Kgk6jGT}+I|?#iOo_yyxMmMX7xZQlN_($ZUFZ9|@_ZZmMQ zt0%m<9-Mv^GsXwgYdy{3+@|NER!A`xC+9|0Oj#wKA7m8N$b!5!yHMP+$PX7#%M`8L zOt~UEuB3CS<`T>3n#}`%g7YrWC0Vj`+909Z=&kw5*l_yySePj~s3A@)T31@V93e?C z;z`A``*(;y&s~?W!l#afo7PPx%fd?*8TX1^b_g zyO9OOxW{DtBaxPO+)tWJ2wQxMPmd~?@|j3-tV?4~hT&8{iBPynI+!@ld^u&q7DRfo z^tgoxLgbvEf{PM)EQfq7@TMEAmSVnjt1e^|^w(`_=vR2?rLrN=N5UhwF-BpG3%wS=@z+ zcZ%lvG7O5MfJk}$k%&g!wY#E)sz!=xZ5fP!S$5(KYpt1*zp)CD!K#*)xkt8E!ra1e zyj6j5hvR<;HnUCr^?B&2$-Gge?M+1fhJ|1Bn6)wuZ+PuE_} zxk385d^+Ww4%ijH@dmr%y8pz+8n7-&*&PY1Iy&S!$|&}&3YMMjYpsTs=Y#beCx4gN zCm60@)9%0ZsE0HvWxsg zOs~GBI&FcWL{UZiB8X{;0IEQG8IoC4hw0*h?gaMyz5HgOtmtFK=qrOqgdKxkvj#F!pQG^fCF^A~nwK$@0bQ#1u zoPy@dl5%Cgp-eDQ*teb}v_q%qoIvtgVs5J?YzfkBfUdwuD;P24-AM(maAK{^wPGD= z3edK-s)~^tcT-h8SZ0t-X50Dr5eH}8oHl#Kc~XoE1bY{aKi zx9_LwBqK0C>jiBfz}rC0YiJ98ssf@jHOk2s%jP+*gM+ao=Fplv?)Xo9*3C<47drIa+cZe}^&NG#TJMw}&-#rV?*t_Fv)Bj3A z*bkNYQXTjXybZV`xetIq%JT_eX2_4sI-<|`aoE{ptxzW#?e6e+D#)^%dfizEuXDe5 z1Gq*#&pG$#FBVJ-w{;i(^+adF#UGGnuD*FahZ8q)7sX9uGA62+T%_R%qm{}#hVU1F zetHvBp1O*3>rV3UZ2P*A_dJ_jXP-pb2PFh$UNS_f&KsP+XHNsgFzvC{C53K(8o@`I zBJ7++=T{14PFlg%3=R0?D#1+rrZc|Tn9Q;MMdy6LZ<9nd58Ec!OXr#@&FiG{oK)P-ya>i@#@Fq3c<;v_rnsF!D1Gk6$Cwrg`n!sxn-9V9O0=A~la_MJ}7%+;k6L|=*L!*)5 zJT6Cy?j2Bc#0aoy;6I_YIW80?GSDBeR>BOYT6sX)BNPUco4pGK7`n|qLz`xmdhKpe zKfH{P@aX9dbf%s^AT*#tA%I)pCo0DRh@Ld4@mIX9K&2*ZzRU>ITLk9?KwRY)^Tk(y z1-W!v9i_l@x5m1Bl^yc-`R;slOaQFG9X_K2nI`~-Q3t_n5@Z*j! zuuX+l(f{5;^`yHJcww~_LBeCY1bcH9?=7|eqJ8$&67!9!{i@K%TB({Ii}9-$gxU_HCW zUb67L_pn;i{c8AG7)+$wyc${x*sq~}^Hb@LO?~~&QOm(Tk*qFpO)SOoDK2TPNSO#q zDouM-%>{7{CsM1EJ{%C4;QN)3S1t$Q@Jye#x=(3{&M%PPgtY*eCYgnVa|S9y0cj@hok?2D5^Go+!hr^tDdn>^~FC<@ErCTv$MIm=cKA^h5t(vOD1k zMywy;vhhFqgxL_&2(r4g802kI-yh=op9#qK>MzoWNYe`NX%EMg+`6oMLno6;I0Fh) zCW8u(qD(&uayRNOf&^Z151$Kr16pffg8o*9tW9|&f)ks1=LDw&MHA9kMD?yQrkC(k z6)L1o=N}TDH7m6t9QQC`m<0R9ex1l%C9c^N-Wt1pRcHokxptQ@*mxz+*xIz3<(dE` z_pc`qNg@`KkU8UKSFaj2d!#dC(x=Nvz2%lJ=3v(p3bK>jrL%8q$$MPK{FVlST?T?s?ImW94} zM-2Fx6A|Y@?`{vry?yDw>kI}X$z}{YCl+U&?)9Wt!}+_WvJ)|x+-jjbD@o01H6YJp zl%qj7h2Gu?@D7RiHj(+!H;$t7s5k|xudrPeCo*#yX^3YkhXwh{(cE@xn$HPAbD!li zEua;m4;*4dtv`4j9O<_pjA^V|aG`2tf6@ zx7ROH9n&_i+~Y)L?#oQNI>bT?P;!RhP)`!l17&s?{1}@-*V=~1F1lxAdrM<_Hv=+7 zt$Lmag2Xm5i!m|fcs0K0SqRR@K83iZqxU1UOn4_$-&z&ik-cvgmvGRTa`$t2#uxqpu zlB}0~jBu4s<*v)#cjqUMGL6cB)~?v(ev_>abub&CYh!cMyS_<5CcdGgHK$#HH3usx zR)~2$6M1sZDhKCHHIy^h{&LYyhUC`$K7RZ=r-Z;{G8YkGsOWT64rMQ9xk2x#)u+Rp z?gDmF5E`n21<_)_nb}~5{UWPy&GbT-Z;)PYOm8DjvbEu_k?5@t1flD;!AMNay+zZG zEKLmJ)LQ-Lr5#z7TdDzmCd`kg?+obuFS3-IE_T>eT_(B<>scuCaVsc_b`jIL!g*9o zICx1~*fF+sTfnbFIRV<~Y%L3ADs)9Oz%g2QXah9-B<@z(t$tMXOd*nGZs@-6;UgF2 z0NSQPd%Fs+y8r-^Ics~wD-MT5;Z%zEB*%JqUdT60Gw<=ns{k?ZDu9)Ihdu(~)BWB8 zA74H?^{>$*bAJIrMUwpon5{`Nr+1bJyQ$bGbOFEy7uoLT9@3?mg5AR6gR{ty&aSt2eL)+=czR0)}TbGN>T*`$~gLHgNx7S)OyVqucSCspf#Eki> zc5^4Q+q1TlUn%67a9s6R=yNx48?Q@ks2)e2c0SRNpZ@{=^e9;-KLT=YyS{CB6rdg4 z&5=EW5n-TLn<9#e$VX(9A00k7$GweBl_sssA>#Zc`0>*!-t{jH5JfCp$D(hsz@zl_ z-G;T&SipmyH+x2W;>W@6=gYmh4JZGs?xeDpyi1CGC;Lwh?|0gPW?7&OPk_r=>n+Ku z`^no3vAc$XLghChw@l62Y%ifp2+tZt7ZLE|w96kOSR>C<%ezi~Na2EvozN3-$x9_) ztwMLW>2z?+Ti97AIg{`*%YDPq@)F=R^-To3Ds#%|^&W*HCt#?~c(9F9Mwv=vJRl+7!LR>>doV83#OoY&!49aG8JUA*dSA4b)ez>mC1f%xI%%tGRZM*f^{9hu6@8PX+tA{mR94TjQdaKDd(ikd{{}wz8dGE z2O_dKlsB>*j--X+cy^5~UB)Zz%gWKN@9m#;l#>i{!VHvsaW>t45ZxxcpyRE{nIO8wvOLh&7&Q>y191(*hN`mF4ip^Ve0jZv zf6%diovyE<#cCRId@9Izj14{YrxPO|bN2=()Nnbpq@s?JmfCZ790mOAumH${Hp6H8 z|JIbas#2)~7y>-z92&kfZakl;cE;5=wCLUfw0j;+s@B~E)M`)z_OB*I)(PAfgy4xz zL;d_#%-oJT`(~8>J5w73C@hskzQ@P zW6YmdwC?4^YB4i3Xh3@F{1WF^Nq(H|m~co{ zxKq=W%=D9pR-dcyx|n1xnxA_**NOV~$$Ia1JHlfIQ^VvEeJ7pq8nYHFHi~O!5WEjd zpl1{pzlQbftDXH18h}^BtGaw0k*A#LGk>JWS>K$cA5;fuenfE6)#0CK*=e%V&^_YMlT{u+ z6Twt0{u=+y5@ass`EC&P0nqd4Z>Ms%I&!ly8sK4EPu;n~6nQ;l(I0rNtl~(jCRyf7 zobvIvDii)`N>B+?p#lq0M2?-zCz35N)4{in@uB9|-G2x9j_Y^0iWx7N;-c+Kvl)%{ZUYnu^(!y3CI9FXxpX)R? z;y@Udf(Ezl{`pfN7>}ps{Phb;6T4bd0YHivsGd@vbX#3K zp49Sk%W@WWY4UYZyhHE!lJ;*iZqL6Yg?(8I{waM%A^)+k*eL^E7^rXkpNztZ&+yl7Z?1Tb!c`kC$RXfHucU;O@V#?YT7> z`-!O-B6Isj2J_gzQ`PZOEtzst8<#rh6+F?c6>vW>n(wzXuwFy@Al(UwH_hOis0>tx zVMJ-YjIoajxG#Oju@!G!NQHJr6J#s8RjJ+YzDZ`=Pe4RKUX=r$(lCFST+T*a&Egn1 zZP=*pI%lQse{SDg;3|2;7pF;2TBlXmQ=KTMUpgil{|w+c53k|`!9VLTRP~8#QH}~F zSKhojze($Pr_U6OFLv?eU)(NcF35EG-^D9YWBKd*S0U2>y)`=L7j7(8au-u2-^+JR zq)MiTJN#aSdRE}5QN9^#AQisz=F=(*o_TTUo2(lQv~Mi}SLxp|N*DP@Fj2x!4bo^& z5yQB{AKsrWtIYd#J3q~RXVN4F?BU2_Q26hUqwC$1&Us0YJ8kQx z)z|+>{@sItrRe+88d0pGGeo8UsiPiyXUTtBYaa88Dh3w-&Iw@W4Wi@U!qw4MMkV8S zHyuyR74R+af87gL`*o4(yk?g#kF1Wr*R!oHoSqCtzbzZtI*WSq$|6Sgd>vG`s3@+A z5jZ(63Y`lI;ZEV0FHPxqPoMRjl*lEnxkt&rexi%wYy z%RPKGpCC;$N|?*YNU6Atn^V?g%5qmvd}d9n~^Q995o+~K!YU7sA{hX&UnoB1k`Uo!25 zBI544Zc<~la3!N-4-v|77L z^yA!eKYxXX=)R5oMgIM@f5dj#uq1n7CXh-y@*}P8#dXjURAF!!wfhQPbE|gvn5|z* zn!T!rb*LMEh&wu5(spi0YeNAQEY5t>H)l~Tvb2_VrJbmNq9?cZ3HHLN#-Ni49O9vU zgLPR+LRJPvVh_s`E(Fi0ubkiiW@PgwBpGf#pa=gbhqbgs$NdC&M0|8_AFwG5c=z&b zuQ(Cx@ha?iZKN=bxh19SVa@hhM%<~7o^dMnxIvmvYSyFlOqw|U1blZ<@;;bQohnyn zzM7gHY=`}a6zOarmYd~U_ed)5eR@HBxDe6KM%*>*Y2Ujy%~n8PHIi79H}EW<{U9|% zFgTwghXs09M+7AQnv3-`GPL>FPcKDr>ZkpuMb;6?UZ8>lzNvL@Z&s{GE0+g=F!)sk zz<&7txndVdZ&r>glOO(3C?U;nSz@~LNhddJ9uC&ZS~9{|At8a1Q3+|hp<=IMMU)BQ zBpffs3OGIC5xnfR8C~^^UDL7RQH5RKC;#+LNjuB=%??$L)n$U zUOA$43WK#CLK~?Bgdp!6_t5hvD$G*vDrCkVAs}3|CmC_7TYT9v3I!pDUVGxNm!MQY zs%i{Z{Q#-Xcix9~WDm5gv;|&?h@Ur`t28TdnQQ6>s(7&0+u4ir?>w~})Ijyzi{+bp zFba4eEC{66TjrA;0aa+T7>K}Qk=xY@S-qZD~t$G(mJl`#QS+O3rB7|(o~H(wWASLZpN*Rwx{ z1Q6tek+*dFORC2JK7<*V%A&;Yd4Qi6s_G>q=nwdY`LewIq6qz4UnhZz+=HgWy)cYc z2(|?`j|rZkx(iSfLZHrYPY;S}wm=655$Os+FZBd$4FpP9w1ZaD)vk*p8M|DHAvdFJ z7+Vd}Vw846X*t6EVY5MqsJ{`THj34U4oHhL28m0x&mBl!w*1d(r1O(Vy}TbARC8}VV6Hn60(3^A4LXYf z%>n0PH;L}upE>aX4TOyQm@}=g^W0*Gj*Vmp6+lR?mO&L_a`K@N!i#o2D?Qqzf&SGw z>}Hk;Xbvb3(#>*-S8{myBK?EGzU#8x^9#()1hItOyPfa&n?jF&AB~w@U$4;j4bOB; z_yatUUTaf8+a7(jFo%^_bRx}4cM{&@>$%ta5DE5T4y4Eglu7LwbsBP^!N76=Nw^NE za;^vY6OC6T9w;h+txMHn8ybV^;xN9>5e6s2lqTOE7-8L-`=dDKe@H6CJ+-wD^!kvB zI!{xu17JARBqDrCi*iZ4U<7>?$c6uGzh>oT>~8HRBG_KIY0A3EV~Nawq+mMuZ>GBI z*{Yy)0je9(wSh%&1cU<@y?#u8_e-avq`(9+aTdyiLLt&wgK9uL3}79B$4zVaTu>=g z1BBcqw~P4QKt@*9CB+aL&JNiV_xw6^Rv?vE|1Z48I}f$~QUv3d$$GjzDlSN)J!~$L z0+0_dl!rFGn6fYEDA>J~DBtkJn(8Ov;8PQEN{#F8R(dLbDgp&5rTBen_ZF}o(?|4gogJ^axk3+2$~kEZFPR>=ogcJo>zWN*U6Gy*JVWnJoa?{`y_4YsPG@!bns_t! z(0%XLf7%{_6dqeJNR-XCs|OvujQ~RM!QU%N3P{6=2uCy3_pl*J-+3rn!Qwv!ybDu| z8UP5QVB>yZYrOsMea?gLrU9`Y?Fi|opPwJ(z&Z&JhxcSX{>Wo001!BNr?)pI%Xa*4i>{c)jfF&c2fkItqRtzA#y*X#`3ZWf=N99(Pv>R%4{-~`;CpU zNad z#dCRrWyed-neY#1R;pD7fQV{G>Qsie35RIwbQte;6&O3DyC=Zhx z3htbM?)UTmC*O|mvyP#{>UbgYysCG@prn9{rnD?4>VDjbzK3r0YxjnspZ^EDo@5SV zJlyUd#Ns(AEznh4n{ulO+?w9({P~aQx&rzwZqpm*(<&VL+WV5Ewd2k;s*{?-@n>j| z!X&?nmt}_eyy;l}z*FLSUOjNLrLM&m%OdzJZPQIe6#a*bUR1(r_uDG?(O2je<~$rX z+i0yNUkxa^INHNq);!m<`p}?#D6%;GVWB z=ftDQu!Pu?8O_-O8e!u{k{OIEsYCHC0}S^PXe8SH$>jLn|Nf8V=LSU^@B~K)yaLh9 zhdOg03NeceH6GW)u?p+Kevs#7=(y2*QP(+k-S=UgRjnB5$>WwGNF5rV0B#!IQ$xsu z5m6hV=kyZL=Eh?VX=9*clEI%{YvhnDJv!K#DK?8`^!r)maHPn9#l{mlD$Kv7izuLb z4FoM%jW4JD_mmlRk9+eo>T(gDW5}k>QpQ~yhFiK#nsC&DZA#kCduwxx=C{*VV2Vl` z!8AQwgdJ9G%IfZ!M7zZs*lYM!$DEm@#Z4iO3>!uNc`}c&i`EyRg-TE7LBWScWLSJO ztH8>bjgh&->tz~x_vhQ=kq)mqnbipQ9Ii|#9p075fM?Jbm%$BRJC$n-21xD$01nV0 zszJ3&y4cJ-4~3JTG}Fyfa&;ab1AOSs|659eY5V^-tg}dH&2SUyNOg7=g~MZ1Roq@~ zb<;&CD&*C&#Pm;OT7^5w>?0ueNJ23;WGl+I!8Yx891_ovAt{3n&i!0$R~P8Bic4<# zvT@qk)Me@#Delwe+&VoT(i)@G*-EXR8Xma_iH`3w)cy6FG>M?SyW`>CUftarquYak zvG+tye-|a`YOs}r7+wfOT2$M3Z)o=8EQ7I=(9~{~d*s_)E_&-7zV&8ZQU&TM8j2DN zu9c{TrFAZJSjb8;dA8hezL%uXB*WG@XZksv+d5TR^mW?`BmRWLSq!e+ z-9IEed`tn%$cRu}Z>4Dn+?_qFc?KMZe@SUKcsf#<8P`#Q>>dtj7S5{T%bDZ$d5!Ug zKg7VGA)G~#>W4Mn_5mjX-TE>a3x`C7hWdG82&{XKs`wu$z>6CF8+?(5y9MPZH$z65Re{?g}3qnfd5(nRo1SJ1w!$?e9+_ zD!nEYnU=vs1rPM!e+I?EoCCJzH?8_bl@vx zO9x)I*c+VFe|G|TVRv;U{1wxW4(ndVSkDZLWjy?^FoQwFRu9XC;p={!qmxK53F~=G#X6UG-}V=Lj=qjIo~rbKj)KdvqJN6J|?#1cAL;fFW?9~O6<;F^y)hW z)Da53e#@zi2XS*2RugP?*~>I2q>d1__MV~QtptgLP;p!%sO_cf-=sQSDEuyciY)%3 z(YB;>L=35%wL&xIgt=W*e{L;p?dkduzDO78SJc}1b~Eu$d)al;M~D!++xo1*l(~~z zxIc)Zp1kvA$u01u8zB|B2Z1>u>yydPWiT7|P0M$JA@h#ixr{)U{cRDOe_ccO3y1j$%V``i86npkFS@j`XakJw+9#q zFBoKO1;QJ*=r>bP+o@hv-5?ORitxj$hDp4Q8paGa-&@j84Lsy#Eal zrz;YldJX4UdsMoQtv&BGP=>lq@B1rGE=qBu?&AMNiCQCx=T|?4%LJ4OcJ#ced2*ty1L@O9nUisvzR+=w1ex&HK#rYi5 ztdjAkc3kIc`x)OxlK&XTpowXpLlqb3?1ONw?Mh=E6mhUP5JP0V-tOMaf7vlR0aabM zLm3I@(0+>ZF%?X4S+F}AV?P~>!{jT6&s9&-XE4+Z*04~e!+(MkHuaw|+{JZXO=B6l zxP9sISm?X|8{sO6fZ_y~>2n?)Ir@KtyRZIluRbWLzD{u2ms2}Ba4<)M4-kgNnUqwC zv!}&k?ad9?^@j+4{~~%~k`&{Qe6nszB3JVEnl*BurtBS9Qh)vI7gXu(8R=xw8SRm6 zTUwXgt`8VJtmF{){VG3`cu)x+JrkNqQ^($@(9e$b^F4-~qFtYd@gx|>)FU=R2Hl6B z9Xl_ml#4h|f^L5rS}=@kY_RntZ*g8^4_T+xl|J1rq(6wl_yQh3stt4=U(?SQFNrs$ zLxqMylJ(uu;`6iccWN?B__{Q&cBkBRZ#zvn)o=X6Sb+_y(m|}hXlTUL#a1t(bfzv$ zSJ-QRCJh1?oZ%i>^MEP)18usbo|n7?S$YnE%Oi1(kvljX0-T#21QawM$bP24%rqo$ z)3>IfQ$UjEOSML!WX4thDOW&Az~oeYHB10gK#oghmG&PeJZ)$r>yYQbguCtS`P8+Y zt@b}$sp;w82F&hF4R;p$>^Dt^$;>G<0WT0ABE}qP%l&`TlnSXU=qoq0s&cLy|Aj$T zf&ZNA@Xw)EKcQ)GgF-G(O1e}Qk@og1fC&iQ#{cvFdMGr3wMR5uegB`~-8>F>IQDz@ zB^y%?H`~Yd<9IUhv&Up#bt#h;8y*qzhgKPyL+jkQ~)tD1z)43;A^24GN^EwL& za};*4Z)9fDo*2?Eu)p#H?ULPsjiNZ!K zEb?boMyjdR!_ofEOBU8nc>b!aWp0S+UVNLl2!}rmQM1#whF~TJA)T5t7r7ROcM1LI zXeRUT2W2E$mja{1Rub%Y$E8h;=e}W-^&_h)t~IYfz4@A&^_L^b3SU)QT9K6#5Ku_} z>N@WfKE9hSYGSF?qY~!z=rLJE-qDg5njr}f?uRS9K|>;bdsiqKOs|$<^m$_zlMwOo zWu(2V_3V1*NkO4{Y2=Th6W}Po*W(V5kH*$9#oBg6-3~P$lWmeyic)ccgjDGOSo%Jf ze@ig$aROvWrLH2(&WM;J%&(cRTLD*?6u`CVU1+@sy0FV=n34VgYB;Kg*2Y?XVOg1h zFx&SMWpq1`IjFl}uApuqk2Kfl$%nF%?2~e?*{}8+HhOI?9E{e+XU4ZGYq8=T7?aP5 zv>qk-|9SXYCd16dE0W<&w-coc^tH zdagD{GI6OgFxXF_iVUwffg{YmW7*<3-uK&i}V_*p#+eQfHdj7NehHt^G(iqpXWW_o4r=n{F-&oUG|>Y z*R}Um6%w`kjx>}-VV0s&Z#Ov@KY?bQWy3r6ACYl>?oP+uQoKJ@fhvGyoZAk=`MHMJ z9>-+KT9*PTvrcd8Z}Yv({;s9Y|JT8UYxXPWBgV=qUjsk|@P=!HSVN(wEBS@He~GCT z=-j7Lxu3&3^*)>{B$+U~c17VTyf1m8rB;fW+a7FyRS9Z+pX?5(PPP(=>SCnZ&uc+Nna!FlHk@{$ zsnkoFADq4`Vf7$SLAqGt(I15GRr(6g{KwEMy`XSXrz;9}oD;f;_3Fvfea+U(-h%s> zYr+nT1H8jrv|p-P=40I?eXjj@2BjUyydJjT{eRm+#s#4s7fxh3+;op5=bI1 z-~Ol&xXmAAEtx_{6YZ^-zMT$jEDo&*um!e}gvgMKh?UzO6)nu8N}nIb>ft+WkspdP^qllAn&)AD!JS^)i9vA!u^M6(MzeeJ%VY->YePc%st*=Kw4 zu3HRb$*HREKTEK3K~6#4Aod)J+Vibu$R#-Z5pZfZR^H)H7G8R@57cDj{?O!ge4hiL zgYobc+vV15mC9*);n9q25kCp%vc(9EQD`+4aD#tZteeVM!JE|hz(xXyh@d(*L6mNX+&H{btK*ke@Wvbc)T?P}` zZwW0xXeBb9@nV=KY0nY+%R;>&AJw4GVss^ZWE**AZQ;7Byug`2uAo68Gb>`PP{Mw& z88Z4+7Th{OPE~a*~Ud^)r{%cHVJi&O)J>modDejOHV^;IP%#S=iGmY=gm0 zqTg45|Kouhi4ByH7sD= zZI+%r*-HpM5aiCzJUqu>n9t7m!0+&)^%er&84AA#q- zkb^gHg0|nFFfsI|Cb&QM-6GjTl#z7SQcXCFmbEYm=*+A@7ec6>m!KXek!{|{Cr31T z1kR)4*tzEXtNr#e@URS)Sg8958`ad;4x7usrQ$musD*vNPMAes7>_n*Z|v9&73dCh zAVB{iW2{Ph!RPRuUH1^G(K|A!Jkytl3%02;8*?)so?>|oCNneX*IR-bQou5wsm2Sp zu#}#AEXYt()3W80AP8rjjJ@R8B*n?vDWV$LQh0Bq8c3W|x z9b|O>!AiA$AaJx?L+0(^{0QTPH!n*xi9GM7Q(*vPT|k^JfkxkuwEciK>=0OT{PN`^*>H#bdPf!;k&QF~Zsq zUs<0(uC!=!^(VHY_=oM_MTGvZdW)@5TXH8NQf=20p6 zS*{cCP~(VKwJ1LfZptMnCvn_y^x~l)2s4*3VpB@%PInt6^|;a9 zeu{#9k#NB}!I{_RJ(mJZqLLe9J?SESJHDZxF{?6Ktk$osr%qStR82AKVtSUVIpyGA zsI=7JhiNTJta{!yNKQXMPVNw}hP(rwogzw6+K4*y+(uxAgRGT=i(`eXDD|Xd_8C=b zA2aSgIpTJ|t?wfMs}NurR&`~og=E1@Fjm(z75hNnE=*UNY0>2 zS;vK%(&U`)P5H6LS9Hb+;@;WRT#D#beD7Fb4&Rt{=@C)QvV;ZL$GFzSv#jRX>nf96ww0gs%(Y`x|5?3v#Q^s6Gc{->kaSMMh3lXT3EJ;}t{EiR8Pa zV=JW36_bxOl@>gHQ#WDoIgrS-=ElZ!rDbh7sCnhB^GRfZwUn-|0hfVuMEvv$bGM>JjFJoj^hj1iH|VB$L5HGQ3z7~8P1dBPGAae-Jsml)97-&B zB!?O?&}lbJCjZQpehlmRW3y{H#%XE_6vq z%McXHOsq)@EcguqNuzX-0c9gH?_b{BTw4<&s^fl~Y$j|ib*eCB(U|-gSXlzTJ35|H zwemoCfN|!kpeVgPVYk6CESjP>}$UJJf> zuV^d0`_l$4P`xC*wEih+5bLFC-riYL3UJmb(3ws<>IEYdc3#}R-W06r==0&#n+-tb zX)2A{%AG5xmq{~c+{tzox(KX*Ik0}`$D*}RvK+)%MR_PVsZ@g2Et_IGrFWmc>*s+n z2N!Nl5FrI^`Ab|V4kkp6IKQAyd)Lp3Ys%kO#U?UVSiP>P5VcpN(0GFv?8w2AzO_G~ z9Qmx0@R(Ipk~Q8@%H`hy0$dOd_e_rcMUAF zmRpmim1W?f+u~`yI;ZEuqRcMW^SV}il*zBMvy$vkKgn!3C%$Z`y-PLVHoX#mhc%Em z7M;XW=M_LQpBW=wJKIgB&@x~z#H%h5_9ao&+)W}*N1Fa^Y6?%cY0Jaflh4j2pDLTr z52q5U9LzQ_Z_ycR?DM{MPzWdR_%d5#n1E$ac|1nL?OZneMG!M58Hy3$1!~K-*%2Y( zkU?eT(O|l=PeTv%Mm;?2o)>RG&5sQTvz|JI#SiN|c>2Dg>Zm#gZK<^z zVn+j&G=P;uyX>WoHh4<8KdI{YbdIESNZa-09G7gni*0lc1fczUKn1! zInu$WoqJpFVSjkRZKMp65#YpGx93EUQr#vPF3WCkEbKf#e4ueIRtbl+ns|EqKxWR~ zz-57C;3>$4Huhy~w4A>9*y7yB&6EcMZ!n%{YmyEH2fvmC+3AU(1SkdMuPz)kyHAgm zYa3Q(r=Y04MlI@%)915yuhxP`ems`HMy0)TSXhz7o5oK)-`PfZIdbtACMGRY>g>uw4xqV%iEFVZD<+&6G+*vg#3db2qyBVOQLpvu`$ZP}jJP zlX0zlz3=anrfTx{RtCoT*qy)3yR~{+keDKLE`Gc<@C+DKFq!>i#=gY`9GQD32D`}~BHu93w&0T(b@8v!j9129)XZphatXsDbJf$!B-AF3r7=rU%JCdO-~SS?^!%h! zX2!;0Np1r!x7p=PT=uHHx3sb_b>G%6prb3K59T+UY{jB=8G{?*6hynphD;2 zcgbvgme^~5BTfhAznzfGPhK8LIz_CG>a3)uf?FzKfSvJYLdL`yCy3jc2CBz9lr;0R zFHq}W&q#kTWHVTHm5-JD;0P5n_Y9_aqw$jyuEY3&US-5*A#Yd!{0E{je6)D3Ik-6kwOL?4NC z8**4wzMO&mQI*&;%hP`Is8GeGf3PzrM=dhlOUhB!+p8f>|8O7hCbjD@;&^wRW}%Jm zIiD3*5wS+sU^1Mmn}bMBl6|QoDQjh{&5A{x3+l-ye=PR3JVw%;y>NF2Y1LYHRQ(0QfClOa?J839 z&AOd)#+nG6sxE)W+#UOYs6Z>_O3#|nxVf?7!}fhWLJcEfO_e{*Hay2GENNtpHeWZt zawu}SKG8}-|55PG@hkZ}Fnww`hZ97Ms#kV5@v^~JZ3$Qyo2Z&35x1GG#Zg!cldLeu z$gnJ30f$dRXO$()B{k{e*&tVu0zGS38^LF#j7ZpO)tJhy4Hr~8)}J(rpYtLO9<(Ip z4GPJW=jkqT|GcEZIDzLY(x^<=A}_}Qb%OlmbnTP|ZKQq;tjOggGfc){W|kNfe~p== zudUuWY-K*hPhxzlCNCqWbEWbV>CRaFnI7~+?Dcekre=)bI@Tw2B+WumuZ1tR@Kk=W zz_T!;p!HXq&S*fV{>2yeiXl-7-`F9WvdhVX?-?rbfq^;f)VL{TzL0#j>+dfTyK-z1 zyK-Qs=SXE6K|i&-K^GlLMF$w)+1Zdl!XEjIKrT(|pYCv0*;m~CDlyK)LOJd8)oLwf z)^c)8tWrJ@Gi?9#?Z{Y2@Q%^`WfoGvkA>{z>ZG% zhC-WMvW>nF#zN=4RjpEIMwypv90)5(i>~Vn&Yv(xdF_`UNA!LUFsN_8Y>NZ-JSpH=c}hGh5vB@NHR;5&^5~~YM5=!h>(-P{?HT#*F<&yGYO&G{JH5C* z%!4#TZn+1u+0TC{wvSZ|b{wE?lwRC#a~iolk36q`_PqR-{}v}fk^hFz;|k8NIN{Nj zZYJ%7K6M_Y_75XnouBX7p5#CDV6mu_dU{77UyE!|yHeqjO!xj>tqGR9fM<#$I~-+~ z95O$xq4O~>jl6HJf@(tJc!HU&GpBsEmWUFj`cDwuPEFdP&|?*%D@yFQTamCbhKK@O zlq>Upf>sr%RnINu44nW`HeghHWkJ@M)65ucN-BwCZn*#)-r?Gd7A9@cI_v%@dD8LK z5KKPpMcSQkI;C!)aWH%lZW*x+xU}w0A&e|yv<0&vDy@ta7ZI5(wl@?X!#+>mu1-c9(G zPuAC)^R3B4p6uu$8PWyPe?|bDQ-)r<8~UhXwg>j|$!e!3D~=vMlJEX!u(U*|kT#!h zlK$xK+`&9eOMH@Z=be2J$&!(_w2~_JUnf1jHA6$}!ohV(bjH7Cxotk}fPoFVL*Be; z(=39kJ3b%NDdD8jpuI_?X_C`1c+%Y>)J{eDjYi}Obb6&jb27R<=W-}M5A{LOTmR|L za&V2W)YF~!UOZgvio=*j0bXNZjjzCq4(=^H8dY!I_mUaRci6^S-7G&G1Q%x8!|2`1 zf5PiO{}eCCT#7~5^t+0#G-Oq(a4O7QpsYZ`AsK+a2JKVj|{B&h7H(JbYr0>-Um_l0ad;Xy6 z-&=zC?EhonUX3X6V^kX1NAq;oH`&?PqEVFkcvPNa)K3uNuqk@N%T=!LP}5RWx39-` z{{iKPF|h6D-+joH>ftgvf8w?ejeL(5djgD#4P~nu)Uy=#LHaR@x}qpbi9j^S zYMPmnJ6_2cuCV=m-E3}DZuONqvK}tlDzUm}^2kLPcW|p$&MJlpeSa(3C73LN zd6jj=v0t3m0wdp+?HU%|8yR%I6ma*bM}6#4`NChlC7I0Mb=2q9R}K$oV)b>4Uuu)D z=SzA zvb%lPaX#u7+#;^u+jj-oGU3grs+3qHez8kGfRb)qh|!exZvEe_HYQPAV2Q&2nxPGs zi6Fl-oK8t{>#~w$s$QqoFS`c5$d^12iF}t3-GIkqtY5F^7s~sfo6AvJxsf~)wl*D~ z#`W>f?DzaQ`TN(U`PIKWysh2+)#;xoEZ@?2n@~jP3RRk3_2u{6M!mKO@2DKrV54w? z6n+Cs;EIfpN9EQ7v^J2TpJrbn-4;f6mEw@yXT{HKN6WI5Dx^Sl5HLCT`Ddck0GMpL z?7V3?p43$z4*CPws}ISZyjk*4orTqYZ^+ zPBhWt>3QWt!{^FMlB-cGh#@y=_XM8uFUA+MWgRanw>ZjeC%3~>V~Z>vTQis(-x^YU z=1{~nEUwYLx*r!LccP))lpUln4a!4FKnD|vDBiEP``Vg&BTO{AW`ttBiah?Dr`rXf zgxXl%%Un}SP|}p7%{hMmr~yf=+mo02mJL`S$Z(bB zpZ*oXP;tuxAFc9z>Z+%Y?L}9{7%$_+=b;!3jjH40nRbw@h9g$VnMVlb7B5{b4p|v=ZudiG7qB! z{=ZXrSv2Aq-4FZ50%e-+eP(9g1_fa$w3Dt$ADs7#=Cw`dFJ}LKyvBa4JRMoPppLs} zktKbO%o`uCcTWFyZvR}z4}gv@en7t(e9ip7Rz!ShGnh{1GWhq6|G8cw?&YOjrXuS9 zp2Yv0$d9%}AM(5EuM5oo^&tQCBvQoaBvls(wn_cJHm66#y7x9NHvL1y|HsS!?diqo zZv9}=?P^+3Xe^?`(J>uSKX*u^54(NAy(qHp+^jJv3K={&(BYA2!{LZ45AU=D7Th&x^LgUt#`0F ziO$RdBW-5A)0=%058sDCO7TqHdDp^>g TcU+SI@b~PI%EO`u#_#?gD;3i@ literal 0 HcmV?d00001 diff --git a/include/SLP_Dlog_PG.h b/include/SLP_Dlog_PG.h new file mode 100755 index 0000000..a108b5f --- /dev/null +++ b/include/SLP_Dlog_PG.h @@ -0,0 +1,183 @@ +/** + @ingroup SLP_PG + @defgroup SLP_PG_Dlog dlog + @{ + +

Introduction

+Dlog logging service support sending log message to circular log device + +

dlog Architecture

+@image html SLP_Dlog_PG_image001.png System Architecture of dlog + +

dlog properties

+Sending log message to circular buffer. dlog APIs include Priority and Tag. By using priority and Tag, we can easily filtered messages what we want to see. +

priority

+priority level incdicates the urgency of log message + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PriorityDescription
VERBOSE Verbose message. - compiled into application and logged at runtime only when debug mode. on release mode, this log message is strip.
DEBUGDebug messasge. - always compiled into application, but not logged at runtime by default on release mode. on debug mode, this message will be logged at runtime.
INFOInformation message - Normal operational messages. above of this priority will always be logged.
WARNWarning messages - not an error, but indication that an error will occur if action is not taken
ERRORError message - indicate error.
FATALFatal message - Should be corrected immediately ( not used yet )
+ +

Tag

+Used to identify the source of a log message. +There is no naming limitation, but do not forget that tag is identification of module. Tag must be distinguishable from other tag. +Simplified macro like LOGV, LOGD, LOGI, LOGW, LOGE uses declared LOG_TAG constant, so declare a LOG_TAG constant before you use dlog macro is a good convention. +@code +#define LOG_TAG "MyApp" +@endcode + +

list of dlog macro

+Macro name start with LOG prefix is for application. start with SLOG prefix is for framework, start with RLOG prefix is for radio. each macro write log message to separated log device such as main, system, radio. + +

sample code

+Using simplified macro with current LOG_TAG + +@code +#define LOG_TAG "YOUR_APP" +#include + +int function () { + LOGD( "debug message from YOUR_APP \n"); + LOGI( "information message from YOUR_APP \n"); + LOGW( "warning message from YOUR_APP \n"); + LOGE( "error message from YOUR_APP \n"); +} +@endcode + +Using log macro allows you to specify a priority and a tag + +@code +#include + +#define TAG_DRM_SVC "drm_svc" +#define TAG_DRM_WM "drm_wm" +#define TAG_DRM_OEM "drm_oem" + +int function () { + LOG(LOG_DEBUG,TAG_DRM_SVC, "information message from drm_svc \n"); + LOG(LOG_WARN,TAG_DRM_WM, "warning message from drm_wm \n"); + LOG(LOG_ERROR,TAG_DRM_OEM, "error message from drm_oem \n"); +} +@endcode + +Using log macro allows you to pass in a varargs + +@code +#include + +#define TAG_DRM_SVC "drm_svc" +#define TAG_DRM_WM "drm_wm" +#define TAG_DRM_OEM "drm_oem" + +int function (const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + LOG_VA(LOG_DEBUG,TAG_DRM_WM, fmt, args); + va_end(ap); +} +@endcode +

dlogutil

+

Introduction

+You can use dlogutil command to view and follow the contents of the log buffers. The general usage is : +@code +dlogutil [