summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib/vmcircbuf.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-runtime/lib/vmcircbuf.cc')
-rw-r--r--gnuradio-runtime/lib/vmcircbuf.cc100
1 files changed, 47 insertions, 53 deletions
diff --git a/gnuradio-runtime/lib/vmcircbuf.cc b/gnuradio-runtime/lib/vmcircbuf.cc
index 4af5262671..9a80d18a57 100644
--- a/gnuradio-runtime/lib/vmcircbuf.cc
+++ b/gnuradio-runtime/lib/vmcircbuf.cc
@@ -51,15 +51,16 @@ vmcircbuf_factory* vmcircbuf_sysconfig::get_default_factory()
std::vector<gr::vmcircbuf_factory*> all = all_factories();
+ logger_ptr logger, debug_logger;
+ gr::configure_default_loggers(logger, debug_logger, "vmcircbuf_sysconfig");
+
char name[1024];
if (gr::vmcircbuf_prefs::get(FACTORY_PREF_KEY, name, sizeof(name)) >= 0) {
for (unsigned int i = 0; i < all.size(); i++) {
if (strncmp(name, all[i]->name(), strlen(all[i]->name())) == 0) {
s_default_factory = all[i];
- if (verbose)
- fprintf(stderr,
- "gr::vmcircbuf_sysconfig: using %s\n",
- s_default_factory->name());
+ GR_LOG_INFO(debug_logger,
+ boost::format("Using %s") % s_default_factory->name());
return s_default_factory;
}
}
@@ -68,8 +69,7 @@ vmcircbuf_factory* vmcircbuf_sysconfig::get_default_factory()
// either we don't have a default, or the default named is not in our
// list of factories. Find the first factory that works.
- if (verbose)
- fprintf(stderr, "gr::vmcircbuf_sysconfig: finding a working factory...\n");
+ GR_LOG_INFO(debug_logger, "finding a working factory...");
for (unsigned int i = 0; i < all.size(); i++) {
if (test_factory(all[i], verbose)) {
@@ -79,7 +79,7 @@ vmcircbuf_factory* vmcircbuf_sysconfig::get_default_factory()
}
// We're screwed!
- fprintf(stderr, "gr::vmcircbuf_sysconfig: unable to find a working factory!\n");
+ GR_LOG_ERROR(logger, "unable to find a working factory!");
throw std::runtime_error("gr::vmcircbuf_sysconfig");
}
@@ -115,36 +115,34 @@ static void init_buffer(const vmcircbuf& c, int counter, int size)
p[i] = counter + i;
}
-static bool
-check_mapping(const vmcircbuf& c, int counter, int size, const char* msg, bool verbose)
+static bool check_mapping(
+ const vmcircbuf& c, int counter, int size, const char* msg, logger_ptr debug_logger)
{
bool ok = true;
- if (verbose)
- fprintf(stderr, "... %s", msg);
+ GR_LOG_INFO(debug_logger, msg);
unsigned int* p1 = (unsigned int*)c.pointer_to_first_copy();
unsigned int* p2 = (unsigned int*)c.pointer_to_second_copy();
- // fprintf(stderr, "p1 = %p, p2 = %p\n", p1, p2);
-
for (unsigned int i = 0; i < size / sizeof(int); i++) {
if (p1[i] != counter + i) {
ok = false;
- if (verbose)
- fprintf(stderr, " p1[%d] == %u, expected %u\n", i, p1[i], counter + i);
+ GR_LOG_INFO(debug_logger,
+ boost::format("p1[%d] == %u, expected %u") % i % p1[i] %
+ (counter + i));
break;
}
if (p2[i] != counter + i) {
- if (verbose)
- fprintf(stderr, " p2[%d] == %u, expected %u\n", i, p2[i], counter + i);
+ GR_LOG_ERROR(debug_logger,
+ boost::format("p1[%d] == %u, expected %u") % i % p2[i] %
+ (counter + i));
ok = false;
break;
}
}
-
- if (ok && verbose) {
- fprintf(stderr, " OK\n");
+ if (ok) {
+ GR_LOG_INFO(debug_logger, "mapping OK");
}
return ok;
}
@@ -170,17 +168,17 @@ test_a_bunch(vmcircbuf_factory* factory, int n, int size, int* start_ptr, bool v
std::vector<std::unique_ptr<vmcircbuf>> c(n);
int cum_size = 0;
+ logger_ptr logger, debug_logger;
+ gr::configure_default_loggers(logger, debug_logger, "gr::test_a_bunch");
+
for (int i = 0; i < n; i++) {
counter[i] = *start_ptr;
*start_ptr += size;
if ((c[i] = std::unique_ptr<vmcircbuf>(factory->make(size))) == 0) {
- if (verbose)
- fprintf(
- stderr,
- "Failed to allocate gr::vmcircbuf number %d of size %d (cum = %s)\n",
- i + 1,
- size,
- memsize(cum_size));
+ GR_LOG_INFO(debug_logger,
+ boost::format("Failed to allocate gr::vmcircbuf "
+ "number %d of size %d (cum = %s)") %
+ (i + 1) % size % memsize(cum_size))
return false;
}
init_buffer(*c[i], counter[i], size);
@@ -190,38 +188,41 @@ test_a_bunch(vmcircbuf_factory* factory, int n, int size, int* start_ptr, bool v
for (int i = 0; i < n; i++) {
std::string msg =
str(boost::format("test_a_bunch_%dx%s[%d]") % n % memsize(size) % i);
- ok &= check_mapping(*c[i], counter[i], size, msg.c_str(), verbose);
+ ok = check_mapping(*c[i], counter[i], size, msg.c_str(), debug_logger) && ok;
}
return ok;
}
static bool standard_tests(vmcircbuf_factory* f, int verbose)
{
- if (verbose >= 1)
- fprintf(stderr, "Testing %s...\n", f->name());
+ logger_ptr logger, debug_logger;
+ gr::configure_default_loggers(logger, debug_logger, "standard_tests");
+
+ GR_LOG_INFO(debug_logger, boost::format("Testing %s...") % f->name());
bool v = verbose >= 2;
int granularity = f->granularity();
int start = 0;
bool ok = true;
- ok &= test_a_bunch(f, 1, 1 * granularity, &start, v); // 1 x 4KB = 4KB
+ ok = test_a_bunch(f, 1, 1 * granularity, &start, v) && ok; // 1 x 4KB = 4KB
if (ok) {
- ok &= test_a_bunch(f, 64, 4 * granularity, &start, v); // 64 x 16KB = 1MB
- ok &= test_a_bunch(f, 4, 4 * (1L << 20), &start, v); // 4 x 4MB = 16MB
- // ok &= test_a_bunch(f, 256, 256 * (1L << 10), &start, v); // 256 x 256KB =
- // 64MB
+ ok = test_a_bunch(f, 64, 4 * granularity, &start, v) && ok; // 64 x 16KB = 1MB
+ ok = test_a_bunch(f, 4, 4 * (1L << 20), &start, v) && ok; // 4 x 4MB = 16MB
+ // ok = test_a_bunch(f, 256, 256 * (1L << 10), &start, v) && ok; // 256 x 256KB
+ // = 64MB
}
- if (verbose >= 1)
- fprintf(stderr, "....... %s: %s", f->name(), ok ? "OK\n" : "Doesn't work\n");
-
+ GR_LOG_INFO(debug_logger,
+ boost::format("%s: %s") % f->name() % (ok ? "OK" : "Doesn't work"))
return ok;
}
bool vmcircbuf_sysconfig::test_factory(vmcircbuf_factory* f, int verbose)
{
+ logger_ptr logger, debug_logger;
+ gr::configure_default_loggers(logger, debug_logger, "gr::vmcircbuf_sysconfig");
// Install local signal handlers for SIGSEGV and SIGBUS.
// If something goes wrong, these signals may be invoked.
@@ -238,22 +239,15 @@ bool vmcircbuf_sysconfig::test_factory(vmcircbuf_factory* f, int verbose)
try {
return standard_tests(f, verbose);
} catch (gr::signal& sig) {
- if (verbose) {
- fprintf(stderr, "....... %s: %s", f->name(), "Doesn't work\n");
- fprintf(stderr,
- "gr::vmcircbuf_factory::test_factory (%s): caught %s\n",
- f->name(),
- sig.name().c_str());
- return false;
- }
+ GR_LOG_INFO(debug_logger,
+ boost::format("vmcircbuf_factory::test_factory (%s): caught %s") %
+ f->name() % sig.name().c_str())
+ return false;
} catch (...) {
- if (verbose) {
- fprintf(stderr, "....... %s: %s", f->name(), "Doesn't work\n");
- fprintf(stderr,
- "gr::vmcircbuf_factory::test_factory (%s): some kind of uncaught "
- "exception\n",
- f->name());
- }
+ GR_LOG_WARN(debug_logger,
+ boost::format("vmcircbuf_factory::test_factory (%s) some "
+ "kind of uncaught exception.") %
+ f->name())
return false;
}
return false; // never gets here. shut compiler up.