From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 5775F42274 for ; Mon, 29 Aug 2022 14:43:48 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4F5A368BAC5; Mon, 29 Aug 2022 17:43:43 +0300 (EEST) Received: from sonic314-21.consmr.mail.ir2.yahoo.com (sonic314-21.consmr.mail.ir2.yahoo.com [77.238.177.147]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6E1E668BA31 for ; Mon, 29 Aug 2022 17:43:36 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1661784215; bh=RyakTCqZ2BJ1RE3ny6y90YB+NfCZXTi023RB4K/9GcE=; h=From:To:Subject:Date:In-Reply-To:References:From:Subject:Reply-To; b=QP1R0p+uhxdp6TOCL8N/Ay6+6RB4xEssw7t4zoGF8bamROpYrCFRQPlx8BiJzliPHXpkjAU1v0m3rXeKSorO0PT4veFpAgjEoRezZ1Y2vIgvZVfCvE1IMaaB4iCceIbsDJZmMWaQRIlP1+1pZFjvo2tImoDUJ4KvTUaOVsF6QAoNTSgKYDK75JMe2YNf0HI/YUqXPcoIjohCz1ol8maFt5XY+zsJTyV5O9X+MyDbF9NOgzz95W4e0eFxR36wuY6MYXEvniVZQz3X2jnvPlCDX0YqjNBV8DZnRJJUqqLg4xtlVbCh6HC900/fRr8zs9fA3etM9Wi6OK8vRElA2kQhsg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1661784215; bh=s5IHdq7Nla7j7bG0J6mVPk/kutPQm1W+ppVemRUTl7A=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=O3eHSxGPTNgPi86A3thW6LAOun7xL5yMkF9FUhfYUrhiLZ9g0nsNGzy49faSTThvIVrotHb+SK3z3YFqCf9jeeU8Ktyr7Q5sG7Va0uejP3znouw7iiq6540GJtftTIwRUSxUsbCgYesSJFz6IajPv/r8X6xf5uGbGp1PFyjsDLoesQT04fi1VAJRl9oLMdMvdiQ3cf/m8U/vvUT7tjeKKFyCWfL+2FkVztDGlgfNBrJt08uQkbji+2jP6ZnQvNKqy4/5uTaeYk4gRMw98+3+tas5fDKp8KEDXhnYGin8yLim8R0kML2CrgqtqvXFIBoriI4+H5nsJgmAcWgNNopA+w== X-YMail-OSG: Yyzhh3IVM1lqgO51mUseOc7s36QiwGE6kp0nStPEPp.dht8AJqAduhXVIWIFEUK MP9hy6MThyDo.ZmAUjUfYU5kCkQ8eunthU3SDAGEg7fVR6nuXFTtOq0KahfQc1OU6XVL6tQxTsfC EJBZCo3GXhtg13elY.jInGEou.VMv3WfVmXv6eKrK1AxEjbpHWdBwsAWN8WDNBsRdoqaZ.kil008 vo2mxHwQAKTDs8YkCBXmmL_xX3PGBE.7S5gMrecwDH5QKXrzWkdbDmqcrqm96TLT4SvcuF4MRtGy jfOz7lJ4YnMYSURB3g8F24FD8_isTKpNV3GeXRI.JzfA1vOESOfb3X2atigWbApebGl_xuf2I4MQ UY6PA2jZEpcj9Yj7k1c_Da1u3u81gao73QEk3vXd0w83pPoP_hAA1SRiSXhTct8lySGi99Smnjca Zy82bZTIbnvDuoibFsH9V3lJSV25D7Dupj5I3UK2EcnJe2WFzmA7PYB0KnwFFbYc7baGnDuIRo_R aJ2HNV4DnxXhrs0COnHQCKIxuyOpYcNe63m3DPZ5sQscG.XmxIfKtPug9SMDxwCdNiGz8sFcSxau QYBnVLYx02TLwoR.8t1hdv2E5tOHUmIVfDVCYlKsirEzhFmknNes9xs0xIkomNbfs81pEChBWbTq klq3laWMeEzaeKBEMlXjjD2OqmZ3qaI2FcN.M2k.e_7J0uz19ty7GOCHoMIzy0zLmiTrP1oO6pn0 aU4IrelA7u5C68QOnl80P8rxLeVaD5sXifb4F6taKxloj0sV65AUUqRz_ztdYnbdORcm0tLv1LHT fH_PTl.u2.84M.eqSXCwG_s5zd1uB_kr1W53Ks575QjGDCmaTcc3yBXdM2w7zLk3g21PLK66lDUA lc6tKWsYFbCZamtF2cVBgWWmp7fmzdAsGjOqdPGOVAl6Y75CD24wjCLjnnOuFlAdJLSEERmBpBAd Z9yFdSRBMeqwyFpiTFEu2mjoAWbqMwGIyHDwKCJNQwBGtegC9f_L61ggVcKDHRC1yfWUcvaeVBvW Bhdc5BhCmNgXtKZPk6W6JUvVvFFPI.siGMqT7_rshxbene6CZQAsFouwgCybZa2_mwte3LcErzda G663DF1zf0NOLVCrfKwgJMApL4k.GlghtEbpzIJ4Z0MvXJBiWM2WUXBJvlx29YiYVjd2F2Jy4KwL T5Z1QvyZjWi.ouPt65SNIEzbRX9V1UW_0QqmZ3w.hGQB6b6kx38HBxLKYd2jDF91gEJfaL0_HPTS Acdu3mO629EnWqFJjGEyshk2sAnYkdQMWQcvoq95_ZYlSAd_8PUetm33WkIWMoRq6NstXZC_ihwz v.zIBRdcUbEQ4N2DNoUYlF6d8HW3bKv1HUw82uYhsEZwLmd__lz9JtqqePF_vrz4_uLQO0sqcV.P CMc2rTqJ6nFsQ5zS0flObYrCd6kVK7lHJ1CEyixtxs44rQqcr6jHhTpSpRU_P0ZCibeEyDuErfRn 7eHOvlbXrPeEKChiShrZivF_Zjyf67OA6Z2wgecAHzDJO0QAmqA_6lzLoIi6IudWWbIf960g5kJf B4WhV3Tw5y.3eDxJytuuq2nJ0QEE8kRHQlgSiDjyO6t_CKBYBod.9COi17WTd9jAzefcIaP1wWEV qK8UBXAwU2DU39uNX87kWMWlD4NLkm_Bxx4TtAOpIxZb8ZUS0OULfjqDc.XFTR8UTujM_ZXRM3aZ S6SzMVxOHpPtd4wI.R_ukw0zlOeXL.nBJY1HgwF_IujJn8cj1oqRRQCvnbB9YiFv2OzM90NX1OQl 3n_3tek9JP4mxeHPsGiLy.pyBaidewgTY8bNha4FeYCMGqwdUGZcZ3TP7FDyKbdIfek9II8Cz66f xtygHehILXZ6_QxpGPkGK7rPqVne4eZmp3uLJXHhoTHTC8fbcdbQ4E62QqOsWKboJlrGG2PXOtai YD_gtfA7KSx63Ifw7uIW77aEEOd91xiU0bLkcXw8piAkczZ__o3xiixp2TqamHMuqnjD_a98OrRN DZg7Tr2XeN5SoypdbP_ie6ZVpW9XQf14knxQQb9czgPlCyu9Zmh9gfyhNeC5oOuY_YgL5vbO8cC5 C798QH35YZO3qeaTlJc01E2TJBMcAuYDXnYTo48AZOCd2uRgQouWWAnB5muLseZxsxP93bBVItwl 3sfi.12mMsi8ym2p4GODZLjbyrK5F.AX3SH3mNFH1LIDi2EkBedQ1j3c2Ju1LyUyzUzGmuLfBfA_ L21wilqO3xDg3njnQiXDhsHAuY5Kuaw-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ir2.yahoo.com with HTTP; Mon, 29 Aug 2022 14:43:35 +0000 Received: by hermes--canary-production-ir2-f74ffc99c-69tgx (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 952163389a1e8e316fbe0b3a8fba821c; Mon, 29 Aug 2022 14:43:30 +0000 (UTC) From: Neil Roberts To: ffmpeg-devel@ffmpeg.org Date: Mon, 29 Aug 2022 16:43:20 +0200 Message-Id: <20220829144320.330685-2-bpeeluk@yahoo.co.uk> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220829144320.330685-1-bpeeluk@yahoo.co.uk> References: <20220829144320.330685-1-bpeeluk@yahoo.co.uk> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avformat/tests: Add a test for avio_check with the pipe protocol X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Creates a UNIX pipe and then verifies that avio_check returns the right access flags for the two ends of the pipe. Signed-off-by: Neil Roberts --- libavformat/Makefile | 1 + libavformat/tests/.gitignore | 1 + libavformat/tests/pipe.c | 101 +++++++++++++++++++++++++++++++++++ tests/fate/libavformat.mak | 5 ++ 4 files changed, 108 insertions(+) create mode 100644 libavformat/tests/pipe.c diff --git a/libavformat/Makefile b/libavformat/Makefile index f67a99f839..9c681c58c5 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -732,6 +732,7 @@ TESTPROGS-$(CONFIG_MOV_MUXER) += movenc TESTPROGS-$(CONFIG_NETWORK) += noproxy TESTPROGS-$(CONFIG_SRTP) += srtp TESTPROGS-$(CONFIG_IMF_DEMUXER) += imf +TESTPROGS-$(CONFIG_PIPE_PROTOCOL) += pipe TOOLS = aviocat \ ismindex \ diff --git a/libavformat/tests/.gitignore b/libavformat/tests/.gitignore index cdd0cce061..567d6f9e40 100644 --- a/libavformat/tests/.gitignore +++ b/libavformat/tests/.gitignore @@ -7,3 +7,4 @@ /srtp /url /seek_utils +/pipe diff --git a/libavformat/tests/pipe.c b/libavformat/tests/pipe.c new file mode 100644 index 0000000000..68540c1a8c --- /dev/null +++ b/libavformat/tests/pipe.c @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2022 Neil Roberts + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include "libavformat/avio.h" +#include "libavutil/error.h" + +static int check_pipe(const char *url, int mask, int expected) +{ + int flags = avio_check(url, mask); + + if (flags < 0) { + fprintf(stderr, + "avio_check for %s with mask 0x%x failed: %s\n", + url, + mask, + av_err2str(flags)); + return 0; + } + + if (flags != expected) { + fprintf(stderr, + "Wrong result returned from avio_check for %s with mask 0x%x. " + "Expected 0x%x but received 0x%x\n", + url, + mask, + flags, + expected); + return 0; + } + + return 1; +} + +int main(int argc, char **argv) +{ + int ret = 0; + int pipe_fds[2]; + char read_url[20], write_url[20]; + int check_invalid_ret; + + if (pipe(pipe_fds) == -1) { + fprintf(stderr, "error creating pipe: %s\n", strerror(errno)); + return 1; + } + + snprintf(read_url, sizeof(read_url), "pipe:%d", pipe_fds[0]); + snprintf(write_url, sizeof(write_url), "pipe:%d", pipe_fds[1]); + + if (!check_pipe(read_url, + AVIO_FLAG_READ | AVIO_FLAG_WRITE, + AVIO_FLAG_READ)) + ret = 1; + + if (!check_pipe(write_url, + AVIO_FLAG_READ | AVIO_FLAG_WRITE, + AVIO_FLAG_WRITE)) + ret = 1; + + /* Ensure that we don't get flags that we didn't ask for */ + if (!check_pipe(read_url, AVIO_FLAG_WRITE, 0)) + ret = 1; + + close(pipe_fds[0]); + close(pipe_fds[1]); + + /* An invalid fd should return EBADF */ + check_invalid_ret = avio_check(read_url, AVIO_FLAG_READ); + + if (check_invalid_ret != AVERROR(EBADF)) { + fprintf(stderr, + "avio_check on invalid FD expected to return %i " + "but %i was received\n", + AVERROR(EBADF), + check_invalid_ret); + ret = 1; + } + + return ret; +} diff --git a/tests/fate/libavformat.mak b/tests/fate/libavformat.mak index d2acb4c9e0..7a22f54c04 100644 --- a/tests/fate/libavformat.mak +++ b/tests/fate/libavformat.mak @@ -26,6 +26,11 @@ FATE_LIBAVFORMAT-$(CONFIG_IMF_DEMUXER) += fate-imf fate-imf: libavformat/tests/imf$(EXESUF) fate-imf: CMD = run libavformat/tests/imf$(EXESUF) +FATE_LIBAVFORMAT-$(CONFIG_PIPE_PROTOCOL) += fate-pipe +fate-pipe: libavformat/tests/pipe$(EXESUF) +fate-pipe: CMD = run libavformat/tests/pipe$(EXESUF) +fate-pipe: CMP = null + FATE_LIBAVFORMAT += fate-seek_utils fate-seek_utils: libavformat/tests/seek_utils$(EXESUF) fate-seek_utils: CMD = run libavformat/tests/seek_utils$(EXESUF) -- 2.37.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".