From patchwork Thu Jan 21 21:39:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 25061 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id B511144A469 for ; Thu, 21 Jan 2021 23:42:31 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9DECE689E56; Thu, 21 Jan 2021 23:42:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 654E9689E5B for ; Thu, 21 Jan 2021 23:42:23 +0200 (EET) Received: by mail-wm1-f43.google.com with SMTP id m187so2696805wme.2 for ; Thu, 21 Jan 2021 13:42:23 -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=/4cg54NjYPW1xPJQPz36oodil6YOyIdsS3SOVnNowIw=; b=nE1KlUX6oWqsO01W9aF/HUEie5tJjz/o8MgB6ai68PPaNtqobMSAX5oeJzScnJex5r 3rQDiVe7YN0bzthb/PU2hWWD9TpivvVuZwTlUPau2x02BsRAQxaMwKIJ1Jls+uc+q6Pp 8kg/XPaBZUf4rWr1Vnm8ZHQYoruo3Na07HdzzIdhG+2m2Q5BB8dUU3P0ek0BN5fUGmFq KXqYPq14XUr+LqgMnB2nWutlX70xVDtdXiMGReCPwnmwabP5zOVjS8CQG21ooX/S89OQ Aa/6jvua1vdvP8h7Kw+GGPjZbBXdLyePsX7eJVDh62bJZoGg0gdvVj+TXU3ZNvxmu7Z/ +4qQ== 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=/4cg54NjYPW1xPJQPz36oodil6YOyIdsS3SOVnNowIw=; b=L5baPJfvCkXXSOjS9NmRGJosLZJVjRvZZEuo4KhHvwgZpAPV6DuExEKn21ZzMAFVeX dqtxuJ8gcY3miO/ty2ZNvuH206iAosSIqUhBTcBG5kyyVcQ7UKASioC+CkDr6jmFph2G I9ESbEsZjBrSHIk3pbChIESw85a/WuiEfG9AN/X7lFiItH7LL+adllqxu7mOyRMw0Wx8 lHZ2+FO2EnSuDMCgcQa5kyiYuscFMkIKXk9ZJZATL2j9X5gjruf6l7vtZaagh+N04gRb topAnfJBxj653Etk/6vTz/dyOebWc22jRUfC4y7dzbc0RzC+M9fQuXizkAnuvao4tgl4 l0Yg== X-Gm-Message-State: AOAM532w94UYGsJ+1lG4ZjHRzCXG6PIjomtDIhWtb1Q3C9XdiTc+MFFA FscFRXktKMKXB1BcOoO/4cVTouY+AnFBvQ== X-Google-Smtp-Source: ABdhPJyixPjja5NLXjljoLPzX2WWIbdM1JAnyjX6AVS4Szpa5mTqIXojl6jvsTmlYSC9yVQIBL8CNg== X-Received: by 2002:a1c:6741:: with SMTP id b62mr1141838wmc.21.1611265342326; Thu, 21 Jan 2021 13:42:22 -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 x10sm1895106wrt.84.2021.01.21.13.42.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Jan 2021 13:42:21 -0800 (PST) From: Mark Thompson To: ffmpeg-devel@ffmpeg.org Date: Thu, 21 Jan 2021 21:39:56 +0000 Message-Id: <20210121213956.991629-5-sw@jkqxz.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210121213956.991629-1-sw@jkqxz.net> References: <20210121213956.991629-1-sw@jkqxz.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] 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" 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..bd3702d596 --- /dev/null +++ b/tests/fate/namespace.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +$1 | + grep ' [TDB] ' | # 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