* server: tests: fetch random media marker via /apply-template (#21962 fix)
* server: allow pinning media marker via LLAMA_MEDIA_MARKER env var
get_media_marker() checks LLAMA_MEDIA_MARKER at first call and uses it
as-is if set, falling back to the random marker otherwise.
Tests no longer need to fetch the marker dynamically via /apply-template:
the fixture sets LLAMA_MEDIA_MARKER=<__media__> so the hardcoded prompts
work as before.
Address review feedback from ngxson
* server: make get_media_marker() thread-safe via magic statics
Use a C++11 static local with a lambda initializer instead of a global
static with an empty-check. The runtime guarantees initialization exactly
once without explicit locking.
Address review feedback from ggerganov
* nits
* nits
return random_string();
}
-static std::string media_marker = "";
const char * get_media_marker() {
- if (media_marker.empty()) {
- media_marker = "<__media_" + random_string() + "__>";
- }
- return media_marker.c_str();
+ static const std::string marker = []() {
+ // allow user to pin a reproducible marker via env var
+ const char * env = getenv("LLAMA_MEDIA_MARKER");
+ if (env && env[0] != '\0') {
+ return std::string(env);
+ }
+ return std::string("<__media_") + random_string() + "__>";
+ }();
+ return marker.c_str();
}
//
@pytest.fixture(autouse=True)
def create_server():
global server
+ os.environ['LLAMA_MEDIA_MARKER'] = '<__media__>'
server = ServerPreset.tinygemma3()
def test_models_supports_multimodal_capability():