Removed test/generate_code.{sh|bat} (#6873)

* removed test/generate_code.{sh|bat}

remove c++0x from generate_code.py

added check generate code script in python

add windows specific call

added flags to generate_code.py

Set c++-0x on BUILD_LEGACY

Skip generating monster_extra if requested

* added option to skip monster extra

* add conditional to skip 2010 check gen
This commit is contained in:
Derek Bailey
2021-11-30 23:13:24 -08:00
committed by GitHub
parent 5c54754790
commit e47dc0e465
16 changed files with 135 additions and 404 deletions

View File

@@ -1,47 +0,0 @@
#!/bin/bash
#
# Copyright 2018 Google Inc. All rights reserved.
#
# 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.
set -e
if ! git diff --quiet; then
echo >&2
echo "ERROR: ********************************************************" >&2
echo "ERROR: The following differences were found after building." >&2
echo "ERROR: Perhaps there is a difference in the flags for the" >&2
echo "ERROR: CMakeLists.txt vs the tests/generate_code.sh script?" >&2
echo "ERROR: ********************************************************" >&2
echo >&2
git diff --binary --exit-code
fi
cd tests
./generate_code.sh
cd ..
# TODO: Linux and macos builds produce differences here for some reason.
git checkout HEAD -- tests/monster_test.bfbs
git checkout HEAD -- tests/arrays_test.bfbs
git checkout HEAD -- samples/monster.bfbs
if ! git diff --quiet; then
echo >&2
echo "ERROR: ********************************************************" >&2
echo "ERROR: The following differences were found after running the" >&2
echo "ERROR: tests/generate_code.sh script. Maybe you forgot to run" >&2
echo "ERROR: it after making changes in a generator or schema?" >&2
echo "ERROR: ********************************************************" >&2
echo >&2
git diff --binary --exit-code
fi

63
scripts/check_generate_code.py Executable file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env python3
#
# Copyright 2021 Google Inc. All rights reserved.
#
# 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.
import platform
import subprocess
import sys
from pathlib import Path
# Get the path where this script is located so we can invoke the script from
# any directory and have the paths work correctly.
script_path = Path(__file__).parent.resolve()
# Get the root path as an absolute path, so all derived paths are absolute.
root_path = script_path.parent.absolute()
result = subprocess.run(["git", "diff", "--quiet"], cwd=root_path)
if result.returncode != 0:
print(
"\n"
"ERROR: *********************************************************\n"
"ERROR: * The following differences were found after building. *\n"
"ERROR: * Perhaps there is a difference in the flags for the. *\n"
"ERROR: * CMakeLists.txt vs the script/generate_code.py script? *\n"
"ERROR: *********************************************************\n"
)
subprocess.run(["git", "diff", "--binary", "--exit-code"], cwd=root_path)
sys.exit(result.returncode)
# Rung the generate_code.py script, forwarding arguments
gen_cmd = ["scripts/generate_code.py"] + sys.argv[1:]
if platform.system() == "Windows":
gen_cmd = ["py"] + gen_cmd
subprocess.run(gen_cmd, cwd=root_path)
result = subprocess.run(["git", "diff", "--quiet"], cwd=root_path)
if result.returncode != 0:
print(
"\n"
"ERROR: ********************************************************\n"
"ERROR: * The following differences were found after running *\n"
"ERROR: * the script/generate_code.py script. Maybe you forgot *\n"
"ERROR: * to run it after making changes in a generator? *\n"
"ERROR: ********************************************************\n"
)
subprocess.run(["git", "diff", "--binary", "--exit-code"], cwd=root_path)
sys.exit(result.returncode)
sys.exit(0)

View File

@@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import argparse
import filecmp
import glob
import platform
@@ -22,6 +23,19 @@ import subprocess
import sys
from pathlib import Path
parser = argparse.ArgumentParser()
parser.add_argument(
"--flatc",
help="path of the Flat C compiler relative to the root directory",
)
parser.add_argument("--cpp-0x", action="store_true", help="use --cpp-std c++ox")
parser.add_argument(
"--skip-monster-extra",
action="store_true",
help="skip generating tests involving monster_extra.fbs",
)
args = parser.parse_args()
# Get the path where this script is located so we can invoke the script from
# any directory and have the paths work correctly.
script_path = Path(__file__).parent.resolve()
@@ -33,8 +47,8 @@ root_path = script_path.parent.absolute()
# argument or defaulting to default names.
flatc_exe = Path(
("flatc" if not platform.system() == "Windows" else "flatc.exe")
if len(sys.argv) <= 1
else sys.argv[1]
if not args.flatc
else args.flatc
)
# Find and assert flatc compiler is present.
@@ -79,7 +93,8 @@ CPP_OPTS = [
"--gen-compare",
"--cpp-ptr-type",
"flatbuffers::unique_ptr",
]
] + (["--cpp-std", "c++0x"] if args.cpp_0x else [])
CPP_17_OPTS = NO_INCL_OPTS + [
"--cpp",
"--cpp-std",
@@ -230,11 +245,22 @@ flatc(
schema="monster_test.fbs",
)
flatc(
CPP_OPTS + CS_OPTS + NO_INCL_OPTS + JAVA_OPTS + KOTLIN_OPTS + PYTHON_OPTS,
schema="monster_extra.fbs",
data="monsterdata_extra.json",
)
if not args.skip_monster_extra:
flatc(
CPP_OPTS
+ CS_OPTS
+ NO_INCL_OPTS
+ JAVA_OPTS
+ KOTLIN_OPTS
+ PYTHON_OPTS,
schema="monster_extra.fbs",
data="monsterdata_extra.json",
)
flatc(
DART_OPTS + ["--gen-object-api"],
schema="monster_extra.fbs",
)
flatc(
CPP_OPTS
@@ -256,11 +282,6 @@ flatc(
schema="arrays_test.fbs",
)
flatc(
DART_OPTS + ["--gen-object-api"],
schema="monster_extra.fbs",
)
# Optional Scalars
optional_scalars_schema = "optional_scalars.fbs"