12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python
- import os
- import sys
- from pathlib import Path
- sys.path.insert(1, os.path.join(os.path.dirname(__file__), "..", ".."))
- from binding_generator import _generate_bindings, _get_file_list
- from build_profile import generate_trimmed_api
- api_filepath = "gdextension/extension_api.json"
- bits = "64"
- precision = "single"
- output_dir = "self_test"
- def test(profile_filepath=""):
- api = generate_trimmed_api(api_filepath, profile_filepath)
- _generate_bindings(
- api,
- api_filepath,
- use_template_get_node=False,
- bits=bits,
- precision=precision,
- output_dir=output_dir,
- )
- flist = _get_file_list(api, output_dir, headers=True, sources=True)
- p = Path(output_dir) / "gen"
- allfiles = [str(f.as_posix()) for f in p.glob("**/*.*")]
- missing = list(filter((lambda f: f not in flist), allfiles))
- extras = list(filter((lambda f: f not in allfiles), flist))
- if len(missing) > 0 or len(extras) > 0:
- print("Error!")
- for f in missing:
- print("MISSING: " + str(f))
- for f in extras:
- print("EXTRA: " + str(f))
- sys.exit(1)
- else:
- print("OK!")
- test()
- test("test/build_profile.json")
|