From patchwork Mon Jan 25 22:07:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 25215 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:ab61:0:0:0:0:0 with SMTP id u88csp3574608ybi; Mon, 25 Jan 2021 14:16:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJzbwwEMnC9LPxPvGaVrD+otAcE3xhso6PcJE1cmm9/R7DyLCGXorce80S4gbtAXmXZHwtdG X-Received: by 2002:a17:906:a20e:: with SMTP id r14mr1622284ejy.404.1611612978555; Mon, 25 Jan 2021 14:16:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611612978; cv=none; d=google.com; s=arc-20160816; b=pLh2rc3ALaUzMLks8y0wJg4/jLQcDeX683HQYDPdGOUr3W/kNY5LmOcHU7xn65s5Bw 9caCMVEpPYgmSpDkUdrfazXTAyz+B21i4x+ijN2vbL9SsSsd7erI7rrdFvngdsHTLkEt cPHkwVGCb886DuSoL+WJCiIqw7d3ED0Vbura7Fd2V/qaYV8fOv1Sqam0BeT3pt/YPoIL sdFg8voigMlBlQVkHOzmJA5obauMWNMawHtaX/V8iEWtmXtTwevB+UIRsQHKc7lWqgXI xDKsfC/YwOZzHe5kNOOYkUtJxuoXAvgeezU3KFm2XrxxPXHR2Fhp3uGXb8BoOp1iXqin n1+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=spR6zw8t/+AhPsSqAVCtGiLzrEcINWmKvJ3jpgZ6GtY=; b=CMRPOTVsLLFVaaKxYd43Y0JABTKaKgPQxQ6ZdZWh2K6yQfDG6URNRP3zgK4KByn/mW jYbAQm7n+bte1RUh0jEzUzccRaWkBXIQonxn+ypB1rFP7PpWzY6DwW4DgxgWSowNQhZw 3PbSyedNtpPxo3rPUZT0ij3YAGLGD31/bd6OXnMaYbCVz+197J8SOC7yWHKdJNeMezbr UKJSNJEuGHJeb9Lfln96phDcgA+ZZqeR/mrV3TfO3PKtyuHpwiUX+tGQUh9x2I4N1r4m 8uw96hIGg3/yW7V7hJx5fUk/h9/vuTmDJL61X3iF0zFJOtUaXO6ibv5ZVf7yvrf1ivh8 g9KA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@jkqxz-net.20150623.gappssmtp.com header.s=20150623 header.b=tLyMmVf0; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n18si6285196ejk.69.2021.01.25.14.16.18; Mon, 25 Jan 2021 14:16:18 -0800 (PST) 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=@jkqxz-net.20150623.gappssmtp.com header.s=20150623 header.b=tLyMmVf0; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9F52E689D23; Tue, 26 Jan 2021 00:16:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C415668811F for ; Tue, 26 Jan 2021 00:16:11 +0200 (EET) Received: by mail-wm1-f46.google.com with SMTP id i9so1002821wmq.1 for ; Mon, 25 Jan 2021 14:16:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=jRmIdKw0HrbtCJ02JgdTQgZOHr2JMkbfcMpOFkGWlnU=; b=tLyMmVf0twRNbJ5Mdwhx9B8qEf3sHZ7b1Zoc5YpcDfCEDjRceiwmd3icbE88Q0am7d HsG34hJMab2GJg9RRdRdDQ6o76A2g3UoGiRfY8RLT8W3eqad1/LtbPTvB94eqla5ZFle FIpYA76ch2oWZVDoKYlaw8mzLSAIdtyl8yn8+HSWl6l4tjSWEJ/Dv0KTVJM3Jf9nML7Y Tczxd6S8y6QrdDlvxoJLOS7oO9o3LSvxYJ8Uug1Eq0t344a+K6ks73FIkqID8MJnMONp KNQACkGTbykYbEYs6S7wE54WyXvsThmtIBNKe6RE45ChQc+vllqLABgUpnrTR3LOdWdu /aRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jRmIdKw0HrbtCJ02JgdTQgZOHr2JMkbfcMpOFkGWlnU=; b=IfPeJpTWgjSsyYRvrWe6CnK97958lS7UhgMnRnczSNmNPqKdlzyAefwO54Q1GT8kno Ue4TDWCg240dujp/duxQpwPOs7ET1nXkT3IqqfqCzNcuFOnMBDOh2h89EtbIyAhiiKN8 uNtUtgmTPeTJ2vBVtylfmO/cCNL9d1lh7iQTkZAkiPgE6ROfjMmhLBVzPTbmaghG4a/j 39K1M9Bj/jXY2SP5bwVmxz5AvrySssicOJoUERJMwUCrwFV2oBqW7JthopYYheki2/DX 2wpAbTA/EC2fCPlABMM2/5cOtj9V8dOM9zj/FwxD30XFGKzKh/g4LTzQ7dJH8oKYu0VV zT4Q== X-Gm-Message-State: AOAM533ZtQ2I8ytDTP1Td4PbgNMd+ukjX95urt2kL5e1uI90KCnaOqav pK4Dx2tAS/FnphbK1mrEjy5dz4nLzucGaQ== X-Received: by 2002:a05:600c:230a:: with SMTP id 10mr1970754wmo.49.1611612597944; Mon, 25 Jan 2021 14:09:57 -0800 (PST) Received: from localhost.localdomain (cpc91226-cmbg18-2-0-cust7.5-4.cable.virginm.net. [82.0.29.8]) by smtp.gmail.com with ESMTPSA id y6sm23216457wrp.6.2021.01.25.14.09.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Jan 2021 14:09:57 -0800 (PST) From: Mark Thompson To: ffmpeg-devel@ffmpeg.org Date: Mon, 25 Jan 2021 22:07:02 +0000 Message-Id: <20210125220702.1103784-2-sw@jkqxz.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210125220702.1103784-1-sw@jkqxz.net> References: <20210125220702.1103784-1-sw@jkqxz.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 2/2] fate: Add test for namespace prefixes in libraries 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 41GDuU1WKJ3G Content-Length: 7713 Ensures that external symbols in the built static libraries either have correct namespace prefixes or are on a known list of exceptions. --- tests/Makefile | 1 + tests/fate/namespace.mak | 19 ++++++++++ tests/fate/namespace.sh | 15 ++++++++ tests/ref/fate/namespace-avcodec | 0 tests/ref/fate/namespace-avdevice | 0 tests/ref/fate/namespace-avfilter | 0 tests/ref/fate/namespace-avformat | 0 tests/ref/fate/namespace-avutil | 0 tests/ref/fate/namespace-postproc | 0 tests/ref/fate/namespace-swresample | 0 tests/ref/fate/namespace-swscale | 58 +++++++++++++++++++++++++++++ 11 files changed, 93 insertions(+) create mode 100644 tests/fate/namespace.mak create mode 100755 tests/fate/namespace.sh create mode 100644 tests/ref/fate/namespace-avcodec create mode 100644 tests/ref/fate/namespace-avdevice create mode 100644 tests/ref/fate/namespace-avfilter create mode 100644 tests/ref/fate/namespace-avformat create mode 100644 tests/ref/fate/namespace-avutil create mode 100644 tests/ref/fate/namespace-postproc create mode 100644 tests/ref/fate/namespace-swresample create mode 100644 tests/ref/fate/namespace-swscale diff --git a/tests/Makefile b/tests/Makefile index 7844901e53..94057eb81d 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -173,6 +173,7 @@ include $(SRC_PATH)/tests/fate/mpeg4.mak include $(SRC_PATH)/tests/fate/mpegps.mak include $(SRC_PATH)/tests/fate/mpegts.mak include $(SRC_PATH)/tests/fate/mxf.mak +include $(SRC_PATH)/tests/fate/namespace.mak include $(SRC_PATH)/tests/fate/opus.mak include $(SRC_PATH)/tests/fate/pcm.mak include $(SRC_PATH)/tests/fate/pixfmt.mak diff --git a/tests/fate/namespace.mak b/tests/fate/namespace.mak new file mode 100644 index 0000000000..0021e7152d --- /dev/null +++ b/tests/fate/namespace.mak @@ -0,0 +1,19 @@ + +define FATE_NAMESPACE +# (library_name, config_option) +FATE_NAMESPACE-$(call ALLYES, STATIC $(2)) += fate-namespace-$(1) +fate-namespace-$(1): lib$(1)/$(LIBPREF)$(1)$(LIBSUF) +fate-namespace-$(1): CMD = runlocal fate/namespace.sh "$(NM_CMD) -P lib$(1)/$(LIBPREF)$(1)$(LIBSUF)" +endef + +$(eval $(call FATE_NAMESPACE,avutil, AVUTIL)) +$(eval $(call FATE_NAMESPACE,avcodec, AVCODEC)) +$(eval $(call FATE_NAMESPACE,avformat, AVFORMAT)) +$(eval $(call FATE_NAMESPACE,avfilter, AVFILTER)) +$(eval $(call FATE_NAMESPACE,avdevice, AVDEVICE)) +$(eval $(call FATE_NAMESPACE,swscale, SWSCALE)) +$(eval $(call FATE_NAMESPACE,swresample, SWRESAMPLE)) +$(eval $(call FATE_NAMESPACE,postproc, POSTPROC)) + +FATE += $(FATE_NAMESPACE-yes) +fate-namespace: $(FATE_NAMESPACE-yes) diff --git a/tests/fate/namespace.sh b/tests/fate/namespace.sh new file mode 100755 index 0000000000..16d306eafc --- /dev/null +++ b/tests/fate/namespace.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +$1 | + grep ' [TDBR] ' | # Filter to all global text/data/bss symbols. + grep -v '^ff_' | # Internal-only globals. + grep -v '^av' | # libav* external API. + grep -v '^sws' | # libswscale external API. + grep -v '^swr' | # libswresample external API. + grep -v '^\(postproc\|pp\)_' | # libpostproc external API. + grep -v '^\(ffio\|ffurl\)_' | # libavformat internal ffio/ffurl APIs. + grep -v '^rgb2rgb_init_' | # libswscale arch-specific init function. + sed 's/ .*//' | # Remove everything except the symbol name. + sort # Sort to allow deterministic comparison. + +exit 0 diff --git a/tests/ref/fate/namespace-avcodec b/tests/ref/fate/namespace-avcodec new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/ref/fate/namespace-avdevice b/tests/ref/fate/namespace-avdevice new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/ref/fate/namespace-avfilter b/tests/ref/fate/namespace-avfilter new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/ref/fate/namespace-avformat b/tests/ref/fate/namespace-avformat new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/ref/fate/namespace-avutil b/tests/ref/fate/namespace-avutil new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/ref/fate/namespace-postproc b/tests/ref/fate/namespace-postproc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/ref/fate/namespace-swresample b/tests/ref/fate/namespace-swresample new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/ref/fate/namespace-swscale b/tests/ref/fate/namespace-swscale new file mode 100644 index 0000000000..a7aa4504ae --- /dev/null +++ b/tests/ref/fate/namespace-swscale @@ -0,0 +1,58 @@ +deinterleaveBytes +interleaveBytes +planar2x +rgb12to15 +rgb12tobgr12 +rgb15to16 +rgb15to24 +rgb15to32 +rgb15tobgr15 +rgb15tobgr16 +rgb15tobgr24 +rgb15tobgr32 +rgb16to15 +rgb16to24 +rgb16to32 +rgb16tobgr15 +rgb16tobgr16 +rgb16tobgr24 +rgb16tobgr32 +rgb24to15 +rgb24to16 +rgb24to32 +rgb24tobgr15 +rgb24tobgr16 +rgb24tobgr24 +rgb24tobgr32 +rgb32to15 +rgb32to16 +rgb32to24 +rgb32tobgr15 +rgb32tobgr16 +rgb32tobgr24 +rgb48to64_bswap +rgb48to64_nobswap +rgb48tobgr48_bswap +rgb48tobgr48_nobswap +rgb48tobgr64_bswap +rgb48tobgr64_nobswap +rgb64to48_bswap +rgb64to48_nobswap +rgb64tobgr48_bswap +rgb64tobgr48_nobswap +shuffle_bytes_0321 +shuffle_bytes_1230 +shuffle_bytes_2103 +shuffle_bytes_3012 +shuffle_bytes_3210 +uyvytoyuv420 +uyvytoyuv422 +vu9_to_vu12 +yuv422ptouyvy +yuv422ptoyuy2 +yuy2toyv12 +yuyvtoyuv420 +yuyvtoyuv422 +yv12touyvy +yv12toyuy2 +yvu9_to_yuy2