Skip to content

Commit f7c5044

Browse files
Merge pull request #779 from g-maxime/mkv-blockadditions
Add fields compare in policy checker
2 parents d1ee3ad + 87768dd commit f7c5044

30 files changed

+1759
-667
lines changed

.github/workflows/MediaConch_Checks.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
pip --disable-pip-version-check install git+https://github.com/vi/mkvparse.git
2727
fi
2828
if [ "$RUNNER_OS" == "macOS" ]; then
29-
brew install automake libxslt sqlite jansson libevent qt@5 sfk xmlstarlet ffmpeg
29+
brew install libtool automake libxslt sqlite jansson libevent qt@5 sfk xmlstarlet ffmpeg
3030
sudo pip --disable-pip-version-check install --prefix /usr/local git+https://github.com/vi/mkvparse.git
3131
fi
3232
- name: Get ZenLib info
@@ -89,8 +89,8 @@ jobs:
8989
- name: Configure GUI
9090
run: |
9191
cd Project/Qt
92-
export PATH=/usr/local/opt/qt@5/bin:$PATH
93-
./prepare INCLUDEPATH+=/usr/local/include CONFIG+=c++11 -after QMAKE_MACOSX_DEPLOYMENT_TARGET=10.9 QMAKE_LFLAGS-=-Wl,-ld_classic
92+
export PATH=/opt/homebrew/opt/qt@5/bin:$PATH
93+
./prepare CONFIG+=c++11 -after QMAKE_MACOSX_DEPLOYMENT_TARGET=10.9 QMAKE_LFLAGS-=-Wl,-ld_classic
9494
- name: Build GUI
9595
run: |
9696
cd Project/Qt

Project/GNU/CLI/Makefile.am

+2-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ TESTS = \
6060
test/simple.sh \
6161
test/filename.sh \
6262
test/test_mk.sh \
63-
test/test_ffv1.sh
63+
test/test_ffv1.sh \
64+
test/test_policy.sh
6465

6566
SAMPLES_DIR = test/SampleFiles
6667

Project/GNU/CLI/test/test_policy.sh

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash
2+
3+
PATH_SCRIPT=$(dirname "${0}")
4+
. "${PATH_SCRIPT}/utils.sh"
5+
6+
FILES_DIRECTORY="${PATH_SCRIPT}/SampleFiles/PolicyTestFiles"
7+
8+
MC="${PWD}/mediaconch"
9+
10+
RCODE=0
11+
12+
while read LINE ; do
13+
POLICY="$(echo "${LINE}" | cut -d':' -f1)"
14+
FILE="$(echo "${LINE}" | cut -d':' -f2)"
15+
OUTCOME="$(echo "${LINE}" | cut -d':' -f3)"
16+
TEST="${POLICY}:$(basename "${FILE}"):${OUTCOME}"
17+
18+
if [ ! -e "${FILES_DIRECTORY}/Policy/${POLICY}" ] ; then
19+
echo "NOK: ${TEST}/${POLICY}, file not found" >&9
20+
RCODE=1
21+
continue
22+
fi
23+
24+
if [ ! -e "${FILES_DIRECTORY}/${FILE}" ] ; then
25+
echo "NOK: ${TEST}/${FILE}, file not found" >&9
26+
RCODE=1
27+
continue
28+
fi
29+
30+
pushd "${FILES_DIRECTORY}" >/dev/null 2>&1
31+
DATA="$(${MC} -p Policy/${POLICY} -fx ${FILE})"
32+
33+
T1=`echo "${DATA}" | xmllint --xpath \
34+
"string(/*[local-name()='MediaConch']/*[local-name()='media']/*[local-name()='policy']/@outcome)" -`
35+
36+
if [ "${T1}" == "${OUTCOME}" ] ; then
37+
echo "OK: ${TEST}" >&9
38+
else
39+
echo "NOK: ${TEST}, failed" >&9
40+
RCODE=1
41+
fi
42+
popd >/dev/null 2>&1
43+
done < "${PATH_SCRIPT}/test_policy.txt"
44+
45+
exit ${RCODE}

Project/GNU/CLI/test/test_policy.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
value.xml:Matroska/videofirst.mkv:pass
2+
value.xml:Matroska/audiofirst.mkv:fail
3+
info.xml:Matroska/audiofirst.mkv:info
4+
warn.xml:Matroska/audiofirst.mkv:warn
5+
levelcap.xml:Matroska/audiofirst.mkv:info
6+
operators.xml:Matroska/videofirst.mkv:pass
7+
mmt.xml:Matroska/videofirst.mkv:pass

0 commit comments

Comments
 (0)