This patch resolves newly reported coverity issues.
It seems that the latest version of coverity detects more
conservatively.
Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
* @note this cannot be called explicitly.
*/
Conf::Conf () {
+ /* the below initializations may redundant but let's keep for coverity */
+ num_threads_ = default_num_threads;
+ reserved_mem_size_ = default_resv_mem_size;
+ log_level_ = default_log_level;
+ mute_stdout_ = default_mute_stdout;
+
reset ();
}
} AGING_TEST_MODE;
#define NPU_TIMEOUT_MS 5000
+#define MAX_ITERATIONS 100000
+
#define PRINT_STATUS_UNIT 100
#define PRINT_STATUS_ITERS(iter, max) \
if (((iter) % PRINT_STATUS_UNIT) == 0) { \
errno = 0;
num_iter_ = strtoul (num_iter.c_str (), NULL, 10);
- if (errno != 0)
- return -errno;
+ if (errno != 0 || num_iter_ > MAX_ITERATIONS) {
+ cerr << "Need a positive number of iterations <= " << MAX_ITERATIONS << "\n";
+ return -EINVAL;
+ }
errno = 0;
mode_ = strtoul (mode.c_str (), NULL, 10);
#include <sstream>
#define NPU_TIMEOUT_MS 5000
+#define MAX_ITERATIONS 100000
using namespace std;
unique_ptr<UtilTRIV2[]> testers;
unique_ptr<uint32_t[]> model_ids;
unique_ptr<int[]> req_ids;
- int num_models, num_iters;
+ uint32_t num_models, num_iters;
if (argc < 3) {
print_help ();
}
/* number of iterations*/
- num_iters = atoi (argv[1]);
+ errno = 0;
+ num_iters = strtoul (argv[1], NULL, 10);
+ if (errno != 0 || num_iters > MAX_ITERATIONS) {
+ cerr << "Need a positive number of iterations <= " << MAX_ITERATIONS << "\n";
+ print_help ();
+ cerr << "[APPTEST] " << argv[0] << ": SKIPPED\n";
+ return 0;
+ }
/* number of model paths (comma-seperated) */
vector<string> model_paths;
EXPECT_EQ (handler->registerModel (&model_buf, &modelid), 0);
- npuConstraint constraint;
+ npuConstraint constraint = {0};
constraint.priority = NPU_PRIORITY_MID;
constraint.timeout_ms = 10;
generic_buffer model_buf = {0};
create_model_buffer (model_buf);
- npuConstraint constraint;
+ npuConstraint constraint = {0};
EXPECT_NE (handler->setConstraint (0, constraint), 0);
EXPECT_NE (handler->setConstraint (1, constraint), 0);
ASSERT_EQ (model->setMetadata (&data), 0);
/** data info */
- tensors_data_info info;
+ tensors_data_info info = {0};
EXPECT_NE (model->setDataInfo (nullptr, nullptr), 0);
EXPECT_NE (model->setDataInfo (&info, nullptr), 0);
EXPECT_NE (model->setDataInfo (nullptr, &info), 0);
auto callback = std::bind (test_callback, &num_called, &m, &cv);
bool force_stop = true;
- Scheduler *sched = new Scheduler (api.get ());
+ std::unique_ptr<Scheduler> sched (new Scheduler (api.get ()));
Request *req = sched->createRequest ();
ASSERT_NE (req, nullptr);
EXPECT_EQ (req->getOpmode (), NPUINPUT_HOST);
EXPECT_EQ (req->getForceStop (), force_stop);
sched->removeRequest (req);
-
- delete sched;
}
/**
bool force_stop = false;
std::string hwDevice = "";
- Scheduler *sched = new Scheduler (api.get ());
+ std::unique_ptr<Scheduler> sched (new Scheduler (api.get ()));
Request *req = sched->createRequest ();
ASSERT_NE (req, nullptr);
req->setOpmode (NPUINPUT_HOST);
EXPECT_EQ (req->isStopped (), true);
sched->removeRequest (req);
- delete sched;
}
/**
* @brief test submitRequest()
std::mutex m;
auto callback = std::bind (test_callback, &num_called, &m, &cv);
- Scheduler *sched = new Scheduler (api.get ());
+ std::unique_ptr<Scheduler> sched (new Scheduler (api.get ()));
Request *req = sched->createRequest ();
ASSERT_NE (req, nullptr);
/** requests are automatically destroyed */
wait_callbacks (num_called, 2, m, cv);
EXPECT_EQ (num_called, 2);
-
- delete sched;
}
/**
auto callback = std::bind (test_callback, &num_called, &m, &cv);
/** no request provided */
- Scheduler *sched = new Scheduler (api.get ());
+ std::unique_ptr<Scheduler> sched (new Scheduler (api.get ()));
Request *req = sched->createRequest ();
ASSERT_NE (req, nullptr);
req->setOpmode (NPUINPUT_HOST);
EXPECT_EQ (sched->submitRequest (req), 0);
/** it waits until all requests are finished */
- delete sched;
}
/**
model->setDriverAPI (api.get ());
model->alloc (4096);
- Scheduler *sched = new Scheduler (api.get ());
+ std::unique_ptr<Scheduler> sched (new Scheduler (api.get ()));
Request *req;
/** requests with not-supported opmode */
EXPECT_NE (sched->submitRequest (req), 0);
sched->removeRequest (req);
-
- delete sched;
}
/**
api = DriverAPI::createDriverAPI (NPUCOND_TRIV2_CONN_SOCIP, 0);
ASSERT_NE (api.get (), nullptr);
- Scheduler *sched = new Scheduler (api.get ());
+ std::unique_ptr<Scheduler> sched (new Scheduler (api.get ()));
Request *req = sched->createRequest ();
ASSERT_NE (req, nullptr);
req->setOpmode (NPUINPUT_HOST);
EXPECT_NE (sched->submitRequest (req), 0);
sched->removeRequest (req);
-
- delete sched;
}
/**
/** @brief set dummy input buffer info */
static void
-set_input_buffers (input_buffers &input) {
- input.num_buffers = 2;
- input.bufs[0].type = BUFFER_MAPPED;
- input.bufs[0].size = 0x1000;
- input.bufs[1].type = BUFFER_MAPPED;
- input.bufs[1].size = 0x1000;
+set_input_buffers (input_buffers *input) {
+ memset (input, '\x00', sizeof (input_buffers));
+
+ input->num_buffers = 2;
+ input->bufs[0].type = BUFFER_MAPPED;
+ input->bufs[0].size = 0x1000;
+ input->bufs[1].type = BUFFER_MAPPED;
+ input->bufs[1].size = 0x1000;
}
/**
* @brief test createSegments() of SegmentTable
table->setDriverAPI (api.get ());
input_buffers input;
- set_input_buffers (input);
+ set_input_buffers (&input);
EXPECT_EQ (table->alloc (), 0);
EXPECT_EQ (table->createSegments (model.get (), &input), 0);
table->setDriverAPI (api.get ());
input_buffers input;
- set_input_buffers (input);
+ set_input_buffers (&input);
ASSERT_EQ (table->alloc (), 0);
ASSERT_EQ (table->createSegments (model.get (), &input), 0);
std::unique_ptr<SegmentTable> table (new SegmentTable (new HWmemDevice));
input_buffers input;
- set_input_buffers (input);
+ set_input_buffers (&input);
/** without model or input */
EXPECT_NE (table->createSegments (nullptr, nullptr), 0);
generic_buffer model;
std::string model_dir (BASIC_TEST_MODEL);
std::string model_path = model_dir + "/model.tvn";
- npu_constraint constraint;
+ npu_constraint constraint = {0};
int req_id;
/* skip if the test model is not available */
public:
EmulModel (const trinity_cuse_model *m) {
id_ = global_id_.fetch_add (1);
- id_ |= (m->dbuf_fd << TRINITY_SHIFT_MODEL_ID);
+ id_ |= ((uint64_t) m->dbuf_fd) << TRINITY_SHIFT_MODEL_ID;
ref_count_ = 1;
deleted_ = false;