Skip to content

Commit 1153104

Browse files
Merge pull request #16 from markfoodyburton/main
Fix CCI report enable mechanism
2 parents bbba814 + c254681 commit 1153104

File tree

12 files changed

+957
-167
lines changed

12 files changed

+957
-167
lines changed

CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ cpmaddpackage(
2424
NAME SystemCLanguage
2525
GIT_REPOSITORY ${GITHUB}accellera-official/systemc.git
2626
GIT_SHALLOW True
27-
GIT_TAG 2.3.3
27+
GIT_TAG master
2828
)
29-
29+
if(SystemCLanguage_ADDED)
30+
set(SystemCLanguage_FOUND TRUE)
31+
endif()
3032

3133
cpmaddpackage(
3234
NAME initiator_id

examples/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ project(scp-tests VERSION 1.0 LANGUAGES CXX C)
33

44
macro(run_test test)
55
add_executable(${test} ${test}.cc)
6-
target_link_libraries(${test} scp::tlm_extensions::initiator_id scp::tlm_extensions::path_trace scp::reporting SystemC::systemc)
6+
target_link_libraries(${test} scp::tlm_extensions::initiator_id scp::tlm_extensions::path_trace scp::reporting SystemC::systemc SystemC::cci)
77
add_test(NAME ${test} COMMAND ${test})
88
set_tests_properties(${test} PROPERTIES TIMEOUT 10)
99
endmacro()

examples/smoke_report.cc

Lines changed: 155 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,77 @@
1919

2020
#include <systemc>
2121
#include <tlm>
22+
#include <cci_configuration>
23+
24+
#include <cstdio>
25+
#include <string>
26+
#include <fstream>
27+
#include <streambuf>
28+
#include <unistd.h>
29+
30+
SC_MODULE (test4) {
31+
SC_CTOR (test4) {
32+
SCP_INFO(()) << " . T4 Logger() 1";
33+
SCP_WARN(()) << " . T4 Logger() 1";
34+
SCP_INFO(()) << " . T4 Logger() 2";
35+
SCP_WARN(()) << " . T4 Logger() 2";
36+
}
37+
SCP_LOGGER();
38+
};
39+
40+
SC_MODULE (test3) {
41+
SC_CTOR (test3) {
42+
SCP_INFO((D)) << " . T3 D Logger \"other\" \"feature.one\"";
43+
SCP_WARN((D)) << " . T3 D Logger \"other\" \"feature.one\"";
44+
SCP_INFO(()) << " . T3 Logger ()";
45+
SCP_WARN(()) << " . T3 Logger ()";
46+
}
47+
SCP_LOGGER((D), "other", "feature.one");
48+
SCP_LOGGER(());
49+
};
50+
51+
SC_MODULE (test2) {
52+
SC_CTOR (test2) : t31("t3_1"), t32("t3_2"), t4("t4") {
53+
SCP_INFO(()) << " T2 Logger()";
54+
SCP_WARN(()) << " T2 Logger()";
55+
}
56+
SCP_LOGGER();
57+
test3 t31, t32;
58+
test4 t4;
59+
};
60+
61+
SC_MODULE (test1) {
62+
SC_CTOR (test1) : t2("t2") {
63+
SCP_WARN((), "My.Name") << " T1 My.Name typed log";
64+
SCP_INFO(()) << " T1 Logger()";
65+
SCP_WARN(()) << " T1 Logger()";
66+
67+
SCP_LOGGER_VECTOR_PUSH_BACK(vec, "some", "thing1");
68+
SCP_LOGGER_VECTOR_PUSH_BACK(vec, "some", "thing2");
69+
70+
SCP_INFO((vec[0])) << "Thing1?";
71+
SCP_WARN((vec[0])) << "Thing1?";
72+
SCP_INFO((vec[1])) << "Thing2?";
73+
SCP_WARN((vec[1])) << "Thing2?";
74+
}
75+
SCP_LOGGER("something", "else");
76+
SCP_LOGGER_VECTOR(vec);
77+
test2 t2;
78+
};
79+
80+
class outside_class
81+
{
82+
SCP_LOGGER("out.class", "thing1");
83+
84+
public:
85+
outside_class() {
86+
SCP_INFO(())("constructor");
87+
SCP_WARN(())("constructor");
88+
}
89+
};
2290

2391
SC_MODULE (test) {
92+
outside_class oc;
2493
SC_CTOR (test) {
2594
SCP_DEBUG(SCMOD) << "First part";
2695
scp::tlm_extensions::path_trace ext;
@@ -47,17 +116,100 @@ SC_MODULE (test) {
47116
} else {
48117
SC_REPORT_INFO("ext test", "Failour");
49118
}
119+
120+
SCP_INFO() << "Uncached version empty";
121+
SCP_INFO(())("FMT String : Cached version default");
122+
SCP_INFO(SCMOD) << "UnCached version feature using SCMOD macro";
123+
SCP_INFO((m_my_logger)) << "Cached version using (m_my_logger)";
124+
SCP_INFO((D)) << "Cached version with D";
50125
}
126+
127+
SCP_LOGGER((m_my_logger));
128+
SCP_LOGGER(());
129+
SCP_LOGGER((1), "other");
130+
SCP_LOGGER((D), "other", "feature.one");
51131
};
52132

53133
int sc_main(int argc, char** argv) {
134+
cci_utils::consuming_broker broker("global_broker");
135+
cci_register_broker(broker);
136+
cci::cci_originator orig("config");
137+
broker.set_preset_cci_value("log_level", cci::cci_value(1), orig);
138+
broker.set_preset_cci_value("top.log_level", cci::cci_value(5), orig);
139+
broker.set_preset_cci_value("*.t3_1.log_level", cci::cci_value(5), orig);
140+
broker.set_preset_cci_value("feature.log_level", cci::cci_value(5), orig);
141+
142+
broker.set_preset_cci_value("test4.log_level", cci::cci_value(4), orig);
143+
broker.set_preset_cci_value("thing1.log_level", cci::cci_value(5), orig);
144+
145+
std::string logfile = "/tmp/scp_smoke_report_test." +
146+
std::to_string(getpid());
54147
scp::init_logging(
55148
scp::LogConfig()
56149
.logLevel(scp::log::DEBUG) // set log level to debug
57-
.msgTypeFieldWidth(10)); // make the msg type column a bit tighter
150+
.msgTypeFieldWidth(20)
151+
.fileInfoFrom(5)
152+
.logAsync(false)
153+
.printSimTime(false)
154+
.logFileName(logfile)); // make the msg type column a bit tighter
58155
SCP_INFO() << "Constructing design";
59-
test test1("test");
156+
test toptest("top");
157+
test1 t1("t1");
158+
60159
SCP_INFO() << "Starting simulation";
61160
sc_core::sc_start();
62-
return 0;
161+
SCP_WARN() << "Ending simulation";
162+
163+
#ifdef FMT_SHARED
164+
std::string fmtstr = "FMT String : Cached version default";
165+
#else
166+
std::string fmtstr = "Please add FMT library for FMT support.";
167+
#endif
168+
169+
std::string expected =
170+
R"([ info] [ 0 s ]SystemC : Constructing design
171+
[ info] [ 0 s ]out.class : constructor
172+
[ warning] [ 0 s ]out.class : constructor
173+
[ debug] [ 0 s ]top : First part
174+
[ info] [ 0 s ]top : top
175+
[ info] [ 0 s ]top : top->top->top
176+
[ debug] [ 0 s ]top : Second part
177+
[ info] [ 0 s ]ext test : Success
178+
[ info] [ 0 s ]SystemC : Uncached version empty
179+
[ info] [ 0 s ]top : )" +
180+
fmtstr + R"(
181+
[ info] [ 0 s ]top : UnCached version feature using SCMOD macro
182+
[ info] [ 0 s ]top : Cached version using (m_my_logger)
183+
[ info] [ 0 s ]top : Cached version with D
184+
[ info] [ 0 s ]t1.t2.t3_1 : . T3 D Logger "other" "feature.one"
185+
[ warning] [ 0 s ]t1.t2.t3_1 : . T3 D Logger "other" "feature.one"
186+
[ info] [ 0 s ]t1.t2.t3_1 : . T3 Logger ()
187+
[ warning] [ 0 s ]t1.t2.t3_1 : . T3 Logger ()
188+
[ info] [ 0 s ]t1.t2.t3_2 : . T3 D Logger "other" "feature.one"
189+
[ warning] [ 0 s ]t1.t2.t3_2 : . T3 D Logger "other" "feature.one"
190+
[ warning] [ 0 s ]t1.t2.t3_2 : . T3 Logger ()
191+
[ info] [ 0 s ]t1.t2.t4 : . T4 Logger() 1
192+
[ warning] [ 0 s ]t1.t2.t4 : . T4 Logger() 1
193+
[ info] [ 0 s ]t1.t2.t4 : . T4 Logger() 2
194+
[ warning] [ 0 s ]t1.t2.t4 : . T4 Logger() 2
195+
[ warning] [ 0 s ]t1.t2 : T2 Logger()
196+
[ warning] [ 0 s ]My.Name : T1 My.Name typed log
197+
[ warning] [ 0 s ]t1 : T1 Logger()
198+
[ info] [ 0 s ]t1 : Thing1?
199+
[ warning] [ 0 s ]t1 : Thing1?
200+
[ warning] [ 0 s ]t1 : Thing2?
201+
[ info] [ 0 s ]SystemC : Starting simulation
202+
[ warning] [ 0 s ]SystemC : Ending simulation
203+
)";
204+
205+
std::ifstream lf(logfile);
206+
std::string out((std::istreambuf_iterator<char>(lf)),
207+
std::istreambuf_iterator<char>());
208+
209+
std::cout << "out file\n" << out << "\n";
210+
std::cout << "expected\n" << expected << "\n";
211+
std::cout << "Number of difference: " << out.compare(expected) << "\n";
212+
213+
std::remove(logfile.c_str());
214+
return out.compare(expected);
63215
}

report/CMakeLists.txt

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,43 @@ cpmaddpackage(
2424
NAME SystemCLanguage
2525
GIT_REPOSITORY ${GITHUB}accellera-official/systemc.git
2626
GIT_SHALLOW True
27-
GIT_TAG 2.3.3
27+
GIT_TAG master
2828
)
2929

30+
cpmaddpackage(
31+
NAME
32+
RapidJSON
33+
GIT_REPOSITORY
34+
https://github.com/Tencent/rapidjson
35+
GIT_TAG
36+
e0f68a435610e70ab5af44fc6a90523d69b210b3
37+
GIT_SHALLOW
38+
FALSE
39+
OPTIONS
40+
"RAPIDJSON_BUILD_TESTS OFF"
41+
"RAPIDJSON_BUILD_DOC OFF"
42+
"RAPIDJSON_BUILD_EXAMPLES OFF")
43+
44+
set(RapidJSON_DIR "${RapidJSON_BINARY_DIR}")
45+
46+
cpmaddpackage(
47+
NAME SystemCCCI
48+
GIT_REPOSITORY ${GITHUB}accellera-official/cci.git
49+
GIT_SHALLOW True
50+
GIT_TAG master
51+
)
52+
53+
set(WITH_FMT "true" CACHE STRING "Include FMT library")
54+
if (WITH_FMT)
55+
cpmaddpackage(
56+
NAME fmt
57+
GIT_REPOSITORY ${GITHUB}fmtlib/fmt.git
58+
GIT_SHALLOW True
59+
GIT_TAG 9.1.0
60+
OPTIONS FMT_INSTALL "" ON
61+
)
62+
endif()
63+
3064
FetchContent_Declare(
3165
spdlog_git
3266
GIT_REPOSITORY "https://github.com/gabime/spdlog.git"
@@ -48,6 +82,10 @@ target_include_directories(
4882
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
4983
)
5084

85+
if(TARGET fmt)
86+
target_link_libraries(${PROJECT_NAME} PUBLIC fmt::fmt)
87+
endif()
88+
5189
target_include_directories(${PROJECT_NAME} PRIVATE ${spdlog_git_SRC_DIR}/include)
5290
if(TARGET SystemC::cci)
5391
target_compile_definitions(${PROJECT_NAME} PRIVATE HAS_CCI)
@@ -56,10 +94,11 @@ endif()
5694
target_link_libraries(${PROJECT_NAME} PUBLIC SystemC::systemc)
5795
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX)
5896

59-
if(BUILD_TESTING AND ("${PROJECT_NAME}" STREQUAL "${CMAKE_PROJECT_NAME}"))
60-
enable_testing()
61-
add_subdirectory(tests)
62-
endif()
97+
#No tests yet. WIP.
98+
#if(BUILD_TESTING AND ("${PROJECT_NAME}" STREQUAL "${CMAKE_PROJECT_NAME}"))
99+
# enable_testing()
100+
# add_subdirectory(tests)
101+
#endif()
63102

64103
add_library("scp::report::lib${PROJECT_NAME}" ALIAS ${PROJECT_NAME})
65104
packageproject(

0 commit comments

Comments
 (0)