From patchwork Tue Mar 22 09:22:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 15505 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 69263BD80A for ; Tue, 22 Mar 2022 09:23:11 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 27882632F0; Tue, 22 Mar 2022 10:23:11 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1647940991; bh=hLTmYuojHMjmtUh8gzJl2+HUWdtodTUsIN7+OUJacFM=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=e/fvcaecdHJY15LFVKu6kgE3mVD7/Rujxv5cDyoF0iP6kI1DfPc+jQsMZ/XfSLgzX ADzhOoe+ndg7t62Bg3dKpsuITIbwpC3Qx0E7uJeU+r2lk7riY6THXpdc+fy7/KAM1L rk3QepZ7BNfqc1jKYgn0u4gzHp80OCvg5h59xu1mQ5u5tRdFWr0+kcAKID12MQ0egN O8KGg5lty67hLRw1w8PnMO1Z/nfuNH0H06KmbErO9uxRpVDOLuN0Snn1SHIFYwkPZL QQ9OcNw3FwkB7f7iOPj1xKPsqCG4PwoMvRnyMghvuZ8uj2Ye7mZdwfWvi/yxkLBoZj SG3nj8TOG8nRg== Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C14A5604DC for ; Tue, 22 Mar 2022 10:23:06 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="Xp7b1x7G"; dkim-atps=neutral Received: by mail-wm1-x329.google.com with SMTP id n35so8367024wms.5 for ; Tue, 22 Mar 2022 02:23:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QSeLD6l2fNDLnVAXmscZh+AApyC398AN3impDShO8DQ=; b=Xp7b1x7GnKst9uEYrj3xbJDYbjz1Cdznm6NkuXWJxSuN/jSyaEfJ20tDhoqbcENMA5 7otLVfqVq9PqM7NoQY6yHQ2EMm3KueboxcaEX1uCClsgrRGXq4eew/csvTMRdmVtICUK 8VRpWSxK7sIsvowiUKmXQux2ZOTfFH05kht/aC0Cl8Z9Vq5WqhOhNaAR9qEOZRSHgEVd sHIL6J8czYQL4Hr08XopijiyLkv7UBoEALGmpVi+v4B9427zt/xVyUCLl9dIkJKqA62q q9pnjd4omJcGL8U5OCxc22Cp5nQzV1w87/bXXexaar1P9eOo1+3EtVEqnFkr+Lie+J04 Jhhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QSeLD6l2fNDLnVAXmscZh+AApyC398AN3impDShO8DQ=; b=wO00jxC4Da3Tyvm7rP4qE6jL5iZce7+QXDdFD6QdpmKFnNzNN3rHLGOsPjHO7l+VhO 3s2h/fWqePk0YEK2fUoMWVsX98EYzZH5O20aJM8od/QKOyLcx6qJYkpaOrKI7vZGGVDE Lou+08IhJPlxQqZYXVJx37kIEMTFIathf87a1JDwpv2x5mz75+s7pKuzGnbQI7D/A6Z1 Vc9X189A8PxMTz7x5hRUGbFC82OKfZMTN76Pzy9HjW1gwdl5DXNb9osoj62hYfq6kFP2 1/DsV8bOXqfoRxmn6BhDFKf3r75CaCPSPBuTHlyI29+YqbAfka422lviRi/S033exqUE PwhA== X-Gm-Message-State: AOAM5323AoxppaDKYOcWLTfDbgnfnhbs/qq1GBQF6iF+XZ2a3Jobo5ph ah7scMTL3wxcayE1y+c7v8r0zC0LNYh+SA== X-Google-Smtp-Source: ABdhPJwawlTTYlCx6mMKDygpnEkz1frbt86sGt0TPLGvrVm2xh994jNuov7caEhMnyPKT1I2Sp/zlQ== X-Received: by 2002:adf:fd4d:0:b0:204:ec5:bd62 with SMTP id h13-20020adffd4d000000b002040ec5bd62mr7911223wrs.403.1647940986263; Tue, 22 Mar 2022 02:23:06 -0700 (PDT) Received: from naush-laptop.pitowers.org ([2a00:1098:3142:14:9e9a:99af:e5a6:319b]) by smtp.gmail.com with ESMTPSA id r14-20020a05600c35ce00b0038c9f469979sm1471695wmq.40.2022.03.22.02.23.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Mar 2022 02:23:05 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Tue, 22 Mar 2022 09:22:57 +0000 Message-Id: <20220322092257.2713521-9-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220322092257.2713521-1-naush@raspberrypi.com> References: <20220322092257.2713521-1-naush@raspberrypi.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v4 8/8] test: Test V4L2BufferCache::isEmpty() member function X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Naushir Patuck via libcamera-devel From: Naushir Patuck Reply-To: Naushir Patuck Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add a test for V4L2BufferCache::isEmpty() for various levels for cache fullness. Signed-off-by: Naushir Patuck Reviewed-by: Laurent Pinchart Reviewed-by: Kieran Bingham --- test/v4l2_videodevice/buffer_cache.cpp | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/v4l2_videodevice/buffer_cache.cpp b/test/v4l2_videodevice/buffer_cache.cpp index b3f2bec11783..5a9aa2199c50 100644 --- a/test/v4l2_videodevice/buffer_cache.cpp +++ b/test/v4l2_videodevice/buffer_cache.cpp @@ -126,6 +126,35 @@ public: return TestPass; } + int testIsEmpty(const std::vector> &buffers) + { + V4L2BufferCache cache(buffers.size()); + + if (!cache.isEmpty()) + return TestFail; + + for (auto const &buffer : buffers) { + FrameBuffer &b = *buffer.get(); + cache.get(b); + } + + if (cache.isEmpty()) + return TestFail; + + unsigned int i; + for (i = 0; i < buffers.size() - 1; i++) + cache.put(i); + + if (cache.isEmpty()) + return TestFail; + + cache.put(i); + if (!cache.isEmpty()) + return TestFail; + + return TestPass; + } + int init() override { std::random_device rd; @@ -204,6 +233,13 @@ public: if (testHot(&cacheHalf, buffers, numBuffers / 2) != TestPass) return TestFail; + /* + * Test that the isEmpty function reports the correct result at + * various levels of cache fullness. + */ + if (testIsEmpty(buffers) != TestPass) + return TestFail; + return TestPass; }