From patchwork Thu Oct 13 22:13:56 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Turner X-Patchwork-Id: 1003 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.133 with SMTP id o127csp12477vsd; Fri, 14 Oct 2016 09:50:39 -0700 (PDT) X-Received: by 10.28.232.148 with SMTP id f20mr2575660wmi.30.1476463838981; Fri, 14 Oct 2016 09:50:38 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 204si607112wmx.51.2016.10.14.09.50.38; Fri, 14 Oct 2016 09:50:38 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@googlemail.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=QUARANTINE dis=QUARANTINE) header.from=googlemail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6739B68988C; Fri, 14 Oct 2016 19:50:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pa0-f66.google.com (mail-pa0-f66.google.com [209.85.220.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DB1AB689890 for ; Fri, 14 Oct 2016 01:14:18 +0300 (EEST) Received: by mail-pa0-f66.google.com with SMTP id hh10so5282747pac.0 for ; Thu, 13 Oct 2016 15:14:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=HXZDv2d92ORy7W1KxfmT5n5KSEX9lbp20qLlgWEaLB0=; b=axCra1rGjTZFfGKnRCyHwsvGOFfNMGkVnJLR0xAUPoriZeomgAgygY9XhVjOnq6xUY Os9EHiTHeyrM2VGB78yHOOihH/lJsghTP32hsdQ7Gd6ox3OcJq+/8DZYxk3nOxGDt/G2 IxCOm6jdP0sNEmoHX8W3cSq4XpRL7hJ7yeSSGV8/+6vE7NUGt4K1+gA+F50Ts2whE2eZ hrsELmvD8/WmiTvIds44/88AuwuvUTRdFu2q7XzFiAVWuMRKWDogCsm1231SFRhCFdaH DSWehvPGUmoV18bN6OCOLuhSrIagySZ1NEsrkXvPCGdxK1lD0jqPMV2HvQ8POEgI2GD5 m13w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=HXZDv2d92ORy7W1KxfmT5n5KSEX9lbp20qLlgWEaLB0=; b=IftTwX74BhIB5IfdAGu8A7RMnfEW0mMzRrRh7LoePIAaMdyJqI5SQpgkHvvATex5Or sEqWnkacvRIo08C1gtyx/NHEbRYexyD5r2Ho7ue9lQhrjyfPHvjJnIbGMcBJ4TH/wkTJ jTehIQUwTUIq9zxUcuaRPzHNdaaeB5cUzquhs29A5PuK27O+WCKND79JtPLW9fgw9kX/ 8KvRNc01W/aj3MP0r5acbApHcM/K4Bk80xNoEZYqAUOBEg6l0XOtl5bEbdLy3TU2T42/ 7FAkZExRHhx6AdinmH3qg30qKnfImhQ6ZF+E0D3g1w4couJjrh4xDianRtZmTP+K9jwv 0PyQ== X-Gm-Message-State: AA6/9RnMIQWg1bGtNdza3RcHH7TRLF6Amkxp5Y6N/trH4jumrCb/iMdtlL0UKNvE/A0oAQ== X-Received: by 10.66.248.132 with SMTP id ym4mr11317259pac.182.1476396858113; Thu, 13 Oct 2016 15:14:18 -0700 (PDT) Received: from Zany.domain.actdsltmp ([47.136.133.132]) by smtp.gmail.com with ESMTPSA id j63sm21948283pfg.32.2016.10.13.15.14.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Oct 2016 15:14:17 -0700 (PDT) From: Thomas Turner X-Google-Original-From: Thomas Turner To: ffmpeg-devel@ffmpeg.org Date: Thu, 13 Oct 2016 15:13:56 -0700 Message-Id: <1476396836-14828-1-git-send-email-thomastdt@gmail.com> X-Mailer: git-send-email 1.9.1 X-Mailman-Approved-At: Fri, 14 Oct 2016 19:50:33 +0300 Subject: [FFmpeg-devel] [PATCH] Improved selftest coverage for libavutil/fifo.c X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: michael@niedermayer.cc, Thomas Turner MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Tested functions: av_fifo_generic_peek(), av_fifo_grow() Signed-off-by: Thomas Turner --- libavutil/tests/fifo.c | 39 +++++++++++++++++++++++++++++++++++++-- tests/ref/fate/fifo | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/libavutil/tests/fifo.c b/libavutil/tests/fifo.c index e4d7edf..63e25c8 100644 --- a/libavutil/tests/fifo.c +++ b/libavutil/tests/fifo.c @@ -17,14 +17,14 @@ */ #include - +#include #include "libavutil/fifo.h" int main(void) { /* create a FIFO buffer */ AVFifoBuffer *fifo = av_fifo_alloc(13 * sizeof(int)); - int i, j, n; + int i, j, n, *p; /* fill data */ for (i = 0; av_fifo_space(fifo) >= sizeof(int); i++) @@ -46,6 +46,24 @@ int main(void) } printf("\n"); + /* generic peek at FIFO */ + + n = av_fifo_size(fifo); + p = malloc(n); + if (p == NULL) { + fprintf(stderr, "failed to allocate memory.\n"); + exit(-1); + } + + (void) av_fifo_generic_peek(fifo, p, n, NULL); + + /* read data at p */ + n /= sizeof(int); + for(i = 0; i < n; ++i) + printf("%d: %d\n", i, p[i]); + + putchar('\n'); + /* read data */ for (i = 0; av_fifo_size(fifo) >= sizeof(int); i++) { av_fifo_generic_read(fifo, &j, sizeof(int), NULL); @@ -67,8 +85,25 @@ int main(void) av_fifo_generic_peek_at(fifo, &j, i * sizeof(int), sizeof(j), NULL); printf("%d: %d\n", i, j); } + putchar('\n'); + + /* test fifo_grow */ + (void) av_fifo_grow(fifo, 15 * sizeof(int)); + + /* fill data */ + n = av_fifo_size(fifo) / sizeof(int); + for (i = n; av_fifo_space(fifo) >= sizeof(int); ++i) + av_fifo_generic_write(fifo, &i, sizeof(int), NULL); + + /* peek_at at FIFO */ + n = av_fifo_size(fifo) / sizeof(int); + for (i = 0; i < n; i++) { + av_fifo_generic_peek_at(fifo, &j, i * sizeof(int), sizeof(j), NULL); + printf("%d: %d\n", i, j); + } av_fifo_free(fifo); + free(p); return 0; } diff --git a/tests/ref/fate/fifo b/tests/ref/fate/fifo index 162d754..2b18ed5 100644 --- a/tests/ref/fate/fifo +++ b/tests/ref/fate/fifo @@ -38,6 +38,20 @@ 11: 11 12: 12 +0: 0 +1: 1 +2: 2 +3: 3 +4: 4 +5: 5 +6: 6 +7: 7 +8: 8 +9: 9 +10: 10 +11: 11 +12: 12 + 0 1 2 3 4 5 6 7 8 9 10 11 12 0: 0 1: 1 @@ -52,3 +66,32 @@ 10: 10 11: 11 12: 12 + +0: 0 +1: 1 +2: 2 +3: 3 +4: 4 +5: 5 +6: 6 +7: 7 +8: 8 +9: 9 +10: 10 +11: 11 +12: 12 +13: 13 +14: 14 +15: 15 +16: 16 +17: 17 +18: 18 +19: 19 +20: 20 +21: 21 +22: 22 +23: 23 +24: 24 +25: 25 +26: 26 +27: 27