From patchwork Wed Mar 25 17:34:26 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Wood X-Patchwork-Id: 6093951 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id EBE299F318 for ; Wed, 25 Mar 2015 17:34:37 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D51092035D for ; Wed, 25 Mar 2015 17:34:32 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 0CADA20357 for ; Wed, 25 Mar 2015 17:34:31 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5B10B6E8F9; Wed, 25 Mar 2015 10:34:30 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) by gabe.freedesktop.org (Postfix) with ESMTP id 557AB6E8F9 for ; Wed, 25 Mar 2015 10:34:29 -0700 (PDT) Received: by wgdm6 with SMTP id m6so36116356wgd.2 for ; Wed, 25 Mar 2015 10:34:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=nZhTVyKPyGEUiGFxTQZUPtNsJ4vFVkpUZT3A536wmAM=; b=EyDtlUtrElPgFqCKWvuEE6TBsQ+rsfrHuQc/mnMnvAue4R/6gph/zZXt4qVn2uD5H7 Sk9f7hjil+KT+oPzdKpIOVizt/ItJA4QLQFKaLV8VpRhhgbHjoOHqWjkVHrdjODin0Hg mMPxVvbcnFWjbQlYTs+OxkUh67SfAu4ks5luP+Gk4bMoetpEUoMtGeOcbkypitApCeap QO6RlvwoNOghpDAvMhr4Ai2Hwkzfoj5FzcLnR6FoGMm6dIdClYL7bzuSf/eR2U4JUZ5j 4zlgJE12/qtOkWGB87C9W0n04NAIz4lFN8/B8rPObm7BpdbvuqimoGMpprt28sMjlJ/R fQVQ== X-Gm-Message-State: ALoCoQnbiBm5V/F5yu987tIpfO2u0m310vT2xf9V6jCXBF7f/zNZM7r/AJHmYF9MHL7l3/lReY0e X-Received: by 10.194.63.172 with SMTP id h12mr19982078wjs.48.1427304868535; Wed, 25 Mar 2015 10:34:28 -0700 (PDT) Received: from pistachio.icx.intel.com ([83.217.123.106]) by mx.google.com with ESMTPSA id v8sm21531242wib.0.2015.03.25.10.34.27 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Mar 2015 10:34:27 -0700 (PDT) From: Thomas Wood To: intel-gfx@lists.freedesktop.org Date: Wed, 25 Mar 2015 17:34:26 +0000 Message-Id: <1427304866-3662-1-git-send-email-thomas.wood@intel.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: References: Subject: [Intel-gfx] [PATCH i-g-t] igt.cocci: check the return values of various functions X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add rules to fix unused-result warnings when compiling with _FORTIFY_SOURCE defined and apply them to the library and tests. Signed-off-by: Thomas Wood --- lib/igt.cocci | 28 ++++++++++++++++++++++++++++ lib/igt_core.c | 20 ++++++++++++-------- lib/igt_debugfs.c | 6 +++--- lib/igt_kms.c | 15 ++++++--------- lib/intel_os.c | 2 +- lib/rendercopy_gen8.c | 2 +- lib/rendercopy_gen9.c | 2 +- tests/kms_fbc_crc.c | 4 ++-- tests/kms_vblank.c | 2 +- tests/pm_lpsp.c | 4 ++-- tests/prime_udl.c | 2 +- 11 files changed, 58 insertions(+), 29 deletions(-) diff --git a/lib/igt.cocci b/lib/igt.cocci index 7dc398d..156f0cf 100644 --- a/lib/igt.cocci +++ b/lib/igt.cocci @@ -173,3 +173,31 @@ int E3, E4; - igt_assert(E3 < E4); + igt_assert_lt(E3, E4); ) + +// avoid unused-result warnings when compiling with _FORTIFY_SOURCE defined +@@ +identifier func =~ "^(read|write)$"; +expression list[2] E; +expression size; +@@ +-func(E, size); ++igt_assert_eq(func(E, size), size); + +@@ +expression ptr, size, nmemb, stream; +@@ +-fread(ptr, size, nmemb, stream); ++igt_assert_eq(fread(ptr, size, nmemb, stream), nmemb); + +@@ +expression list E; +@@ +-fgets(E); ++igt_assert_neq(fgets(E), NULL); + +@@ +identifier func =~ "^v?asprintf$"; +expression list E; +@@ +-func(E); ++igt_assert_neq(func(E), -1); diff --git a/lib/igt_core.c b/lib/igt_core.c index 7445eab..3a6dc79 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -412,13 +412,15 @@ static void low_mem_killer_disable(bool disable) /* writing 9999 to this module parameter effectively diables the * low memory killer. This is not a real file, so we dont need to * seek to the start or truncate it */ - write(fd, no_lowmem_killer, sizeof(no_lowmem_killer)); + igt_assert_eq(write(fd, no_lowmem_killer, sizeof(no_lowmem_killer)), + sizeof(no_lowmem_killer)); close(fd); } else { /* just re-enstate the original settings */ fd = open(adj_fname, O_WRONLY); igt_assert(fd != -1); - write(fd, prev_adj_scores, adj_scores_len); + igt_assert_eq(write(fd, prev_adj_scores, adj_scores_len), + adj_scores_len); close(fd); } @@ -859,7 +861,8 @@ void __igt_skip_check(const char *file, const int line, char *err_str = NULL; if (err) - asprintf(&err_str, "Last errno: %i, %s\n", err, strerror(err)); + igt_assert_neq(asprintf(&err_str, "Last errno: %i, %s\n", err, strerror(err)), + -1); if (f) { static char *buf; @@ -869,7 +872,7 @@ void __igt_skip_check(const char *file, const int line, free(buf); va_start(args, f); - vasprintf(&buf, f, args); + igt_assert_neq(vasprintf(&buf, f, args), -1); va_end(args); igt_skip("Test requirement not met in function %s, file %s:%i:\n" @@ -1396,10 +1399,11 @@ static void fatal_sig_handler(int sig) for (i = 0; i < ARRAY_SIZE(handled_signals); i++) { if (handled_signals[i].number == sig) { - write(STDERR_FILENO, "Received signal ", 16); - write(STDERR_FILENO, handled_signals[i].name, - handled_signals[i].name_len); - write(STDERR_FILENO, ".\n", 2); + igt_assert_eq(write(STDERR_FILENO, "Received signal ", 16), + 16); + igt_assert_eq(write(STDERR_FILENO, handled_signals[i].name, handled_signals[i].name_len), + handled_signals[i].name_len); + igt_assert_eq(write(STDERR_FILENO, ".\n", 2), 2); break; } } diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c index 85c3f22..df7f453 100644 --- a/lib/igt_debugfs.c +++ b/lib/igt_debugfs.c @@ -273,7 +273,7 @@ static bool igt_pipe_crc_do_start(igt_pipe_crc_t *pipe_crc) sprintf(buf, "pipe %s %s", kmstest_pipe_name(pipe_crc->pipe), pipe_crc_source_name(pipe_crc->source)); errno = 0; - write(pipe_crc->ctl_fd, buf, strlen(buf)); + igt_assert_eq(write(pipe_crc->ctl_fd, buf, strlen(buf)), strlen(buf)); if (errno != 0) return false; @@ -285,7 +285,7 @@ static void igt_pipe_crc_pipe_off(int fd, enum pipe pipe) char buf[32]; sprintf(buf, "pipe %s none", kmstest_pipe_name(pipe)); - write(fd, buf, strlen(buf)); + igt_assert_eq(write(fd, buf, strlen(buf)), strlen(buf)); } static void igt_pipe_crc_reset(void) @@ -417,7 +417,7 @@ void igt_pipe_crc_stop(igt_pipe_crc_t *pipe_crc) char buf[32]; sprintf(buf, "pipe %s none", kmstest_pipe_name(pipe_crc->pipe)); - write(pipe_crc->ctl_fd, buf, strlen(buf)); + igt_assert_eq(write(pipe_crc->ctl_fd, buf, strlen(buf)), strlen(buf)); } static bool pipe_crc_init_from_string(igt_crc_t *crc, const char *line) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 9c131f0..6cb1f08 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -434,9 +434,8 @@ bool kmstest_force_connector(int drm_fd, drmModeConnector *connector, break; } - asprintf(&path, "%s-%d/force", - kmstest_connector_type_str(connector->connector_type), - connector->connector_type_id); + igt_assert_neq(asprintf(&path, "%s-%d/force", kmstest_connector_type_str(connector->connector_type), connector->connector_type_id), + -1); debugfs_fd = igt_debugfs_open(path, O_WRONLY | O_TRUNC); if (debugfs_fd == -1) { @@ -494,9 +493,8 @@ void kmstest_force_edid(int drm_fd, drmModeConnector *connector, char *path; int debugfs_fd, ret; - asprintf(&path, "%s-%d/edid_override", - kmstest_connector_type_str(connector->connector_type), - connector->connector_type_id); + igt_assert_neq(asprintf(&path, "%s-%d/edid_override", kmstest_connector_type_str(connector->connector_type), connector->connector_type_id), + -1); debugfs_fd = igt_debugfs_open(path, O_WRONLY | O_TRUNC); free(path); @@ -910,9 +908,8 @@ static void igt_output_refresh(igt_output_t *output) if (!output->name) { drmModeConnector *c = output->config.connector; - asprintf(&output->name, "%s-%d", - kmstest_connector_type_str(c->connector_type), - c->connector_type_id); + igt_assert_neq(asprintf(&output->name, "%s-%d", kmstest_connector_type_str(c->connector_type), c->connector_type_id), + -1); } LOG(display, "%s: Selecting pipe %s\n", output->name, diff --git a/lib/intel_os.c b/lib/intel_os.c index 1badd3e..3321a8d 100644 --- a/lib/intel_os.c +++ b/lib/intel_os.c @@ -255,7 +255,7 @@ intel_purge_vm_caches(void) if (fd < 0) return; - write(fd, "3\n", 2); + igt_assert_eq(write(fd, "3\n", 2), 2); close(fd); } diff --git a/lib/rendercopy_gen8.c b/lib/rendercopy_gen8.c index baed762..a7fc2c4 100644 --- a/lib/rendercopy_gen8.c +++ b/lib/rendercopy_gen8.c @@ -30,7 +30,7 @@ static void dump_batch(struct intel_batchbuffer *batch) { int fd = open("/tmp/i965-batchbuffers.dump", O_WRONLY | O_CREAT, 0666); if (fd != -1) { - write(fd, batch->buffer, 4096); + igt_assert_eq(write(fd, batch->buffer, 4096), 4096); fd = close(fd); } } diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c index b7b133c..0766192 100644 --- a/lib/rendercopy_gen9.c +++ b/lib/rendercopy_gen9.c @@ -31,7 +31,7 @@ static void dump_batch(struct intel_batchbuffer *batch) { int fd = open("/tmp/i965-batchbuffers.dump", O_WRONLY | O_CREAT, 0666); if (fd != -1) { - write(fd, batch->buffer, 4096); + igt_assert_eq(write(fd, batch->buffer, 4096), 4096); fd = close(fd); } } diff --git a/tests/kms_fbc_crc.c b/tests/kms_fbc_crc.c index 4256fed..10e1ca4 100644 --- a/tests/kms_fbc_crc.c +++ b/tests/kms_fbc_crc.c @@ -198,7 +198,7 @@ static bool fbc_enabled(data_t *data) status = igt_debugfs_fopen("i915_fbc_status", "r"); igt_assert(status); - fread(str, sizeof(str) - 1, 1, status); + igt_assert_eq(fread(str, sizeof(str) - 1, 1, status), 1); fclose(status); return strstr(str, "FBC enabled") != NULL; } @@ -510,7 +510,7 @@ igt_main status = igt_debugfs_fopen("i915_fbc_status", "r"); igt_require_f(status, "No i915_fbc_status found\n"); - fread(buf, sizeof(buf), 1, status); + igt_assert_eq(fread(buf, sizeof(buf), 1, status), sizeof(buf)); fclose(status); buf[sizeof(buf) - 1] = '\0'; igt_require_f(!strstr(buf, "unsupported by this chipset") && diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c index 569390e..5a00ccc 100644 --- a/tests/kms_vblank.c +++ b/tests/kms_vblank.c @@ -101,7 +101,7 @@ static void query(int fd, bool busy) busy ? "busy" : "idle", elapsed(&start, &end, count)); if (busy) - read(fd, buf, sizeof(buf)); + igt_assert_eq(read(fd, buf, sizeof(buf)), sizeof(buf)); } igt_main diff --git a/tests/pm_lpsp.c b/tests/pm_lpsp.c index 50b3dd9..3ed4c78 100644 --- a/tests/pm_lpsp.c +++ b/tests/pm_lpsp.c @@ -45,12 +45,12 @@ static void disable_audio_runtime_pm(void) fd = open("/sys/module/snd_hda_intel/parameters/power_save", O_WRONLY); if (fd >= 0) { - write(fd, "1\n", 2); + igt_assert_eq(write(fd, "1\n", 2), 2); close(fd); } fd = open("/sys/bus/pci/devices/0000:00:03.0/power/control", O_WRONLY); if (fd >= 0) { - write(fd, "auto\n", 5); + igt_assert_eq(write(fd, "auto\n", 5), 5); close(fd); } /* Give some time for it to react. */ diff --git a/tests/prime_udl.c b/tests/prime_udl.c index 62b381a..d03aee0 100644 --- a/tests/prime_udl.c +++ b/tests/prime_udl.c @@ -61,7 +61,7 @@ static int find_and_open_devices(void) if (!fl) break; - fgets(vendor_id, 8, fl); + igt_assert_neq(fgets(vendor_id, 8, fl), NULL); fclose(fl); venid = strtoul(vendor_id, NULL, 16);