"""src/vkgs/src/render_graph.cpp 의 정렬·배리어 로직을 g++ 로 컴파일해 시험한다. GPU·창 없음 (vkCmdPipelineBarrier 는 시험 쪽 가짜가 기록한다).""" import os import shutil import subprocess from pathlib import Path import pytest ROOT = Path(__file__).resolve().parents[1] # 뷰어 빌드와 같은 컴파일러 (conda gcc 12, $CXX). 시스템 g++ 9 는 C++20 을 모른다 CXX = os.environ.get("CXX") or "g++" @pytest.mark.skipif(shutil.which(CXX) is None, reason="g++ 없음") def test_render_graph(tmp_path): exe = tmp_path / "t" inc = [str(ROOT / "src/vkgs/src"), str(ROOT / "third_party")] if os.environ.get("CONDA_PREFIX"): inc.append(os.environ["CONDA_PREFIX"] + "/include") subprocess.run([CXX, "-std=c++20", "-O1", *(f"-I{d}" for d in inc), str(ROOT / "tests/cpp/test_render_graph.cpp"), str(ROOT / "src/vkgs/src/render_graph.cpp"), "-o", str(exe)], check=True) r = subprocess.run([str(exe), str(ROOT / "configs/render_graph.json")], capture_output=True, text=True) assert r.returncode == 0, r.stdout + r.stderr