summaryrefslogtreecommitdiffstats
path: root/camera/docs/metadata-parser-validity-check
diff options
context:
space:
mode:
Diffstat (limited to 'camera/docs/metadata-parser-validity-check')
-rwxr-xr-xcamera/docs/metadata-parser-validity-check65
1 files changed, 65 insertions, 0 deletions
diff --git a/camera/docs/metadata-parser-validity-check b/camera/docs/metadata-parser-validity-check
new file mode 100755
index 0000000..fc97b7c
--- /dev/null
+++ b/camera/docs/metadata-parser-validity-check
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+#
+# Copyright (C) 2012 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# Sanity check the XML parser by making sure it's generating the same data
+# as the original parsed data.
+#
+
+thisdir=$(cd "$(dirname "$0")"; pwd)
+
+$thisdir/metadata-check-dependencies || exit 1
+
+tmp_out=$(mktemp -t tmp.XXXXXXXXXX)
+tmp_tidy1=$(mktemp -t tmp.XXXXXXXXXX)
+tmp_tidy2=$(mktemp -t tmp.XXXXXXXXXX)
+
+function check_test
+{
+ local file="$1"
+ local results
+ results="$(python3 "$file" 2>&1)"
+ local retval=$?
+ if [[ $retval -ne 0 ]]
+ then
+ echo "$results" >& 2
+ echo "FAILED: Unit tests $file"
+ else
+ echo "SUCCESS: Unit tests $file"
+ fi
+ return $retval
+}
+
+check_test "$thisdir/metadata_model_test.py" || exit 1
+check_test "$thisdir/metadata_helpers_test.py" || exit 1
+python3 $thisdir/metadata_parser_xml.py $thisdir/metadata_definitions.xml $thisdir/metadata_template.mako $tmp_out || exit 1
+tidy -indent -xml -quiet $thisdir/metadata_definitions.xml > $tmp_tidy1
+tidy -indent -xml -quiet $tmp_out > $tmp_tidy2
+
+diff $tmp_tidy1 $tmp_tidy2
+exit_code=$?
+rm $tmp_out $tmp_tidy1 $tmp_tidy2
+
+if [[ $exit_code -ne 0 ]]
+then
+ echo "ERROR: Files differ, please check parser logic" 1>&2
+else
+ echo "SUCCESS: Files are the same!" 1>&2
+fi
+
+exit $exit_code