[TEST] Add test case for lxm service internal API - #647

Open
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc
Open

[TEST] Add test case for lxm service internal API#647
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Added positive and negative TCs for lxm service internal API

Comment threadtests/capi/meson.build
Comment threadc/include/ml-lxm-service-internal.h
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from 8e582f7 to 508bc4aCompareSeptember 1, 2025 01:48
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from ac58e3e to f744577CompareSeptember 12, 2025 03:46
This commit introduces the ML LXM Service API, a new C API designed to
facilitate interactions with large-scale models such as Large Language
Models (LLMs)
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
- Added positive and negative TCs for lxm service internal API
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: This PR stacks on #646 (its first commit is byte-identical to #646's head) and adds tests/capi/unittest_capi_lxm_service.cc (2 tests: basicFlow_p, invalidParams_n) plus tests/capi/meson.build wiring. It merges cleanly and CI is green, but no CI lane has llama.cpp, so this file has never been compiled or run by CI. Findings are limited to the test commit (dd0e768).

  1. [High] Positive test is always skipped against current mainunittest_capi_lxm_service.cc:45,49: skip_lxm_tc checks for llama-2-7b-chat.Q2_K.gguf, but main's tests/test_models/config/config_single_llamacpp.conf (loaded at line ~164) now uses TinyStories-656K-Q2_K.gguf (LLAMACPP_TEST_MODEL in unittest_capi_service_extension.cc). A developer following the repo convention gets basicFlow_p skipped; one with the llama-2 file gets an ml_service_new failure. Rebase and reuse the same model constants (ideally hoist LLAMACPP_TEST_MODEL / URL / _get_model_path() into unittest_util).
  2. [High] Negative checks hidden behind a successful model load:221-275: all NULL-parameter checks for ml_lxm_prompt_*, ml_lxm_session_set_instructions, ml_lxm_session_respond, ml_lxm_session_destroy are inside if (ml_lxm_session_create (...) == ML_ERROR_NONE), and the else just prints and passes. The prompt APIs need no session or model at all. Without a model (CI, most dev machines) the test degrades to four checks and reports PASS. Move every prompt-API and NULL-handle check out of the conditional and use GTEST_SKIP for the session-dependent ones.
  3. [Medium] Build wiringtests/capi/meson.build:~82 re-declares llamacpp_dep = dependency('llama', required: false), which already exists in the root meson.build; neither debian/control nor packaging/machine-learning-api.spec provides llama, and the spec's %check is not updated, so the executable is never built / run in CI. Reuse the root llamacpp_dep and add the test under a %if 0%{?llamacpp_support} guard in %check (or state explicitly that CI coverage is deferred).
  4. [Medium] Fixed 10 s sleep:136g_usleep (10000000U) after respond is slow and flaky. Poll tdata.token_count with a bounded retry like unittest_capi_service_extension.cc:205-212, or use a GCond signalled by the callback.
  5. [Medium] Destroy during generation:257-271: invalidParams_n issues a real ml_lxm_session_respond and immediately destroys the prompt / session while the filter may still be generating and calling _lxm_token_cb, without checking whether the callback fired. Either remove the successful respond from the negative test or wait for completion before teardown.
  6. [Low]:97-100: main added ML_SERVICE_EVENT_MESSAGE (7ead26a); add a case after rebasing so default: does not print "unhandled event" for a legitimate event.
  7. [Low]:115-132: tdata.received_tokens (GString), session, prompt leak when an ASSERT_* fires in _run_lxm_session_test before cleanup. Use g_autoptr(GString) / early-out cleanup.
  8. [Low]:20,312: the whole file including main() is inside #if defined(ENABLE_LLAMACPP); keep main() outside the guard and use the DISABLED_ pattern from unittest_capi_service_extension.cc so the binary always builds.
  9. [Low] C++ // comments throughout (~95, 98, 117, 122, 130, 171, ...); every other file in tests/capi/ uses /* */. Also the # Increased timeout comment indentation in meson.build was already flagged; after fixing #4 the 120 s timeout can return to the standard 100.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@songgot@myungjoo@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[TEST] Add test case for lxm service internal API - #647

Open
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc
Open

[TEST] Add test case for lxm service internal API#647
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Added positive and negative TCs for lxm service internal API

Comment threadtests/capi/meson.build
Comment threadc/include/ml-lxm-service-internal.h
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from 8e582f7 to 508bc4aCompareSeptember 1, 2025 01:48
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from ac58e3e to f744577CompareSeptember 12, 2025 03:46
This commit introduces the ML LXM Service API, a new C API designed to
facilitate interactions with large-scale models such as Large Language
Models (LLMs)
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
- Added positive and negative TCs for lxm service internal API
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: This PR stacks on #646 (its first commit is byte-identical to #646's head) and adds tests/capi/unittest_capi_lxm_service.cc (2 tests: basicFlow_p, invalidParams_n) plus tests/capi/meson.build wiring. It merges cleanly and CI is green, but no CI lane has llama.cpp, so this file has never been compiled or run by CI. Findings are limited to the test commit (dd0e768).

  1. [High] Positive test is always skipped against current mainunittest_capi_lxm_service.cc:45,49: skip_lxm_tc checks for llama-2-7b-chat.Q2_K.gguf, but main's tests/test_models/config/config_single_llamacpp.conf (loaded at line ~164) now uses TinyStories-656K-Q2_K.gguf (LLAMACPP_TEST_MODEL in unittest_capi_service_extension.cc). A developer following the repo convention gets basicFlow_p skipped; one with the llama-2 file gets an ml_service_new failure. Rebase and reuse the same model constants (ideally hoist LLAMACPP_TEST_MODEL / URL / _get_model_path() into unittest_util).
  2. [High] Negative checks hidden behind a successful model load:221-275: all NULL-parameter checks for ml_lxm_prompt_*, ml_lxm_session_set_instructions, ml_lxm_session_respond, ml_lxm_session_destroy are inside if (ml_lxm_session_create (...) == ML_ERROR_NONE), and the else just prints and passes. The prompt APIs need no session or model at all. Without a model (CI, most dev machines) the test degrades to four checks and reports PASS. Move every prompt-API and NULL-handle check out of the conditional and use GTEST_SKIP for the session-dependent ones.
  3. [Medium] Build wiringtests/capi/meson.build:~82 re-declares llamacpp_dep = dependency('llama', required: false), which already exists in the root meson.build; neither debian/control nor packaging/machine-learning-api.spec provides llama, and the spec's %check is not updated, so the executable is never built / run in CI. Reuse the root llamacpp_dep and add the test under a %if 0%{?llamacpp_support} guard in %check (or state explicitly that CI coverage is deferred).
  4. [Medium] Fixed 10 s sleep:136g_usleep (10000000U) after respond is slow and flaky. Poll tdata.token_count with a bounded retry like unittest_capi_service_extension.cc:205-212, or use a GCond signalled by the callback.
  5. [Medium] Destroy during generation:257-271: invalidParams_n issues a real ml_lxm_session_respond and immediately destroys the prompt / session while the filter may still be generating and calling _lxm_token_cb, without checking whether the callback fired. Either remove the successful respond from the negative test or wait for completion before teardown.
  6. [Low]:97-100: main added ML_SERVICE_EVENT_MESSAGE (7ead26a); add a case after rebasing so default: does not print "unhandled event" for a legitimate event.
  7. [Low]:115-132: tdata.received_tokens (GString), session, prompt leak when an ASSERT_* fires in _run_lxm_session_test before cleanup. Use g_autoptr(GString) / early-out cleanup.
  8. [Low]:20,312: the whole file including main() is inside #if defined(ENABLE_LLAMACPP); keep main() outside the guard and use the DISABLED_ pattern from unittest_capi_service_extension.cc so the binary always builds.
  9. [Low] C++ // comments throughout (~95, 98, 117, 122, 130, 171, ...); every other file in tests/capi/ uses /* */. Also the # Increased timeout comment indentation in meson.build was already flagged; after fixing #4 the 120 s timeout can return to the standard 100.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@songgot@myungjoo@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[TEST] Add test case for lxm service internal API - #647

Open
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc
Open

[TEST] Add test case for lxm service internal API#647
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Added positive and negative TCs for lxm service internal API

Comment threadtests/capi/meson.build
Comment threadc/include/ml-lxm-service-internal.h
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from 8e582f7 to 508bc4aCompareSeptember 1, 2025 01:48
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from ac58e3e to f744577CompareSeptember 12, 2025 03:46
This commit introduces the ML LXM Service API, a new C API designed to
facilitate interactions with large-scale models such as Large Language
Models (LLMs)
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
- Added positive and negative TCs for lxm service internal API
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: This PR stacks on #646 (its first commit is byte-identical to #646's head) and adds tests/capi/unittest_capi_lxm_service.cc (2 tests: basicFlow_p, invalidParams_n) plus tests/capi/meson.build wiring. It merges cleanly and CI is green, but no CI lane has llama.cpp, so this file has never been compiled or run by CI. Findings are limited to the test commit (dd0e768).

  1. [High] Positive test is always skipped against current mainunittest_capi_lxm_service.cc:45,49: skip_lxm_tc checks for llama-2-7b-chat.Q2_K.gguf, but main's tests/test_models/config/config_single_llamacpp.conf (loaded at line ~164) now uses TinyStories-656K-Q2_K.gguf (LLAMACPP_TEST_MODEL in unittest_capi_service_extension.cc). A developer following the repo convention gets basicFlow_p skipped; one with the llama-2 file gets an ml_service_new failure. Rebase and reuse the same model constants (ideally hoist LLAMACPP_TEST_MODEL / URL / _get_model_path() into unittest_util).
  2. [High] Negative checks hidden behind a successful model load:221-275: all NULL-parameter checks for ml_lxm_prompt_*, ml_lxm_session_set_instructions, ml_lxm_session_respond, ml_lxm_session_destroy are inside if (ml_lxm_session_create (...) == ML_ERROR_NONE), and the else just prints and passes. The prompt APIs need no session or model at all. Without a model (CI, most dev machines) the test degrades to four checks and reports PASS. Move every prompt-API and NULL-handle check out of the conditional and use GTEST_SKIP for the session-dependent ones.
  3. [Medium] Build wiringtests/capi/meson.build:~82 re-declares llamacpp_dep = dependency('llama', required: false), which already exists in the root meson.build; neither debian/control nor packaging/machine-learning-api.spec provides llama, and the spec's %check is not updated, so the executable is never built / run in CI. Reuse the root llamacpp_dep and add the test under a %if 0%{?llamacpp_support} guard in %check (or state explicitly that CI coverage is deferred).
  4. [Medium] Fixed 10 s sleep:136g_usleep (10000000U) after respond is slow and flaky. Poll tdata.token_count with a bounded retry like unittest_capi_service_extension.cc:205-212, or use a GCond signalled by the callback.
  5. [Medium] Destroy during generation:257-271: invalidParams_n issues a real ml_lxm_session_respond and immediately destroys the prompt / session while the filter may still be generating and calling _lxm_token_cb, without checking whether the callback fired. Either remove the successful respond from the negative test or wait for completion before teardown.
  6. [Low]:97-100: main added ML_SERVICE_EVENT_MESSAGE (7ead26a); add a case after rebasing so default: does not print "unhandled event" for a legitimate event.
  7. [Low]:115-132: tdata.received_tokens (GString), session, prompt leak when an ASSERT_* fires in _run_lxm_session_test before cleanup. Use g_autoptr(GString) / early-out cleanup.
  8. [Low]:20,312: the whole file including main() is inside #if defined(ENABLE_LLAMACPP); keep main() outside the guard and use the DISABLED_ pattern from unittest_capi_service_extension.cc so the binary always builds.
  9. [Low] C++ // comments throughout (~95, 98, 117, 122, 130, 171, ...); every other file in tests/capi/ uses /* */. Also the # Increased timeout comment indentation in meson.build was already flagged; after fixing #4 the 120 s timeout can return to the standard 100.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@songgot@myungjoo@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[TEST] Add test case for lxm service internal API - #647

Open
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc
Open

[TEST] Add test case for lxm service internal API#647
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Added positive and negative TCs for lxm service internal API

Comment threadtests/capi/meson.build
Comment threadc/include/ml-lxm-service-internal.h
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from 8e582f7 to 508bc4aCompareSeptember 1, 2025 01:48
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from ac58e3e to f744577CompareSeptember 12, 2025 03:46
This commit introduces the ML LXM Service API, a new C API designed to
facilitate interactions with large-scale models such as Large Language
Models (LLMs)
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
- Added positive and negative TCs for lxm service internal API
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: This PR stacks on #646 (its first commit is byte-identical to #646's head) and adds tests/capi/unittest_capi_lxm_service.cc (2 tests: basicFlow_p, invalidParams_n) plus tests/capi/meson.build wiring. It merges cleanly and CI is green, but no CI lane has llama.cpp, so this file has never been compiled or run by CI. Findings are limited to the test commit (dd0e768).

  1. [High] Positive test is always skipped against current mainunittest_capi_lxm_service.cc:45,49: skip_lxm_tc checks for llama-2-7b-chat.Q2_K.gguf, but main's tests/test_models/config/config_single_llamacpp.conf (loaded at line ~164) now uses TinyStories-656K-Q2_K.gguf (LLAMACPP_TEST_MODEL in unittest_capi_service_extension.cc). A developer following the repo convention gets basicFlow_p skipped; one with the llama-2 file gets an ml_service_new failure. Rebase and reuse the same model constants (ideally hoist LLAMACPP_TEST_MODEL / URL / _get_model_path() into unittest_util).
  2. [High] Negative checks hidden behind a successful model load:221-275: all NULL-parameter checks for ml_lxm_prompt_*, ml_lxm_session_set_instructions, ml_lxm_session_respond, ml_lxm_session_destroy are inside if (ml_lxm_session_create (...) == ML_ERROR_NONE), and the else just prints and passes. The prompt APIs need no session or model at all. Without a model (CI, most dev machines) the test degrades to four checks and reports PASS. Move every prompt-API and NULL-handle check out of the conditional and use GTEST_SKIP for the session-dependent ones.
  3. [Medium] Build wiringtests/capi/meson.build:~82 re-declares llamacpp_dep = dependency('llama', required: false), which already exists in the root meson.build; neither debian/control nor packaging/machine-learning-api.spec provides llama, and the spec's %check is not updated, so the executable is never built / run in CI. Reuse the root llamacpp_dep and add the test under a %if 0%{?llamacpp_support} guard in %check (or state explicitly that CI coverage is deferred).
  4. [Medium] Fixed 10 s sleep:136g_usleep (10000000U) after respond is slow and flaky. Poll tdata.token_count with a bounded retry like unittest_capi_service_extension.cc:205-212, or use a GCond signalled by the callback.
  5. [Medium] Destroy during generation:257-271: invalidParams_n issues a real ml_lxm_session_respond and immediately destroys the prompt / session while the filter may still be generating and calling _lxm_token_cb, without checking whether the callback fired. Either remove the successful respond from the negative test or wait for completion before teardown.
  6. [Low]:97-100: main added ML_SERVICE_EVENT_MESSAGE (7ead26a); add a case after rebasing so default: does not print "unhandled event" for a legitimate event.
  7. [Low]:115-132: tdata.received_tokens (GString), session, prompt leak when an ASSERT_* fires in _run_lxm_session_test before cleanup. Use g_autoptr(GString) / early-out cleanup.
  8. [Low]:20,312: the whole file including main() is inside #if defined(ENABLE_LLAMACPP); keep main() outside the guard and use the DISABLED_ pattern from unittest_capi_service_extension.cc so the binary always builds.
  9. [Low] C++ // comments throughout (~95, 98, 117, 122, 130, 171, ...); every other file in tests/capi/ uses /* */. Also the # Increased timeout comment indentation in meson.build was already flagged; after fixing #4 the 120 s timeout can return to the standard 100.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@songgot@myungjoo@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[TEST] Add test case for lxm service internal API - #647

Open
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc
Open

[TEST] Add test case for lxm service internal API#647
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Added positive and negative TCs for lxm service internal API

Comment threadtests/capi/meson.build
Comment threadc/include/ml-lxm-service-internal.h
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from 8e582f7 to 508bc4aCompareSeptember 1, 2025 01:48
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from ac58e3e to f744577CompareSeptember 12, 2025 03:46
This commit introduces the ML LXM Service API, a new C API designed to
facilitate interactions with large-scale models such as Large Language
Models (LLMs)
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
- Added positive and negative TCs for lxm service internal API
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: This PR stacks on #646 (its first commit is byte-identical to #646's head) and adds tests/capi/unittest_capi_lxm_service.cc (2 tests: basicFlow_p, invalidParams_n) plus tests/capi/meson.build wiring. It merges cleanly and CI is green, but no CI lane has llama.cpp, so this file has never been compiled or run by CI. Findings are limited to the test commit (dd0e768).

  1. [High] Positive test is always skipped against current mainunittest_capi_lxm_service.cc:45,49: skip_lxm_tc checks for llama-2-7b-chat.Q2_K.gguf, but main's tests/test_models/config/config_single_llamacpp.conf (loaded at line ~164) now uses TinyStories-656K-Q2_K.gguf (LLAMACPP_TEST_MODEL in unittest_capi_service_extension.cc). A developer following the repo convention gets basicFlow_p skipped; one with the llama-2 file gets an ml_service_new failure. Rebase and reuse the same model constants (ideally hoist LLAMACPP_TEST_MODEL / URL / _get_model_path() into unittest_util).
  2. [High] Negative checks hidden behind a successful model load:221-275: all NULL-parameter checks for ml_lxm_prompt_*, ml_lxm_session_set_instructions, ml_lxm_session_respond, ml_lxm_session_destroy are inside if (ml_lxm_session_create (...) == ML_ERROR_NONE), and the else just prints and passes. The prompt APIs need no session or model at all. Without a model (CI, most dev machines) the test degrades to four checks and reports PASS. Move every prompt-API and NULL-handle check out of the conditional and use GTEST_SKIP for the session-dependent ones.
  3. [Medium] Build wiringtests/capi/meson.build:~82 re-declares llamacpp_dep = dependency('llama', required: false), which already exists in the root meson.build; neither debian/control nor packaging/machine-learning-api.spec provides llama, and the spec's %check is not updated, so the executable is never built / run in CI. Reuse the root llamacpp_dep and add the test under a %if 0%{?llamacpp_support} guard in %check (or state explicitly that CI coverage is deferred).
  4. [Medium] Fixed 10 s sleep:136g_usleep (10000000U) after respond is slow and flaky. Poll tdata.token_count with a bounded retry like unittest_capi_service_extension.cc:205-212, or use a GCond signalled by the callback.
  5. [Medium] Destroy during generation:257-271: invalidParams_n issues a real ml_lxm_session_respond and immediately destroys the prompt / session while the filter may still be generating and calling _lxm_token_cb, without checking whether the callback fired. Either remove the successful respond from the negative test or wait for completion before teardown.
  6. [Low]:97-100: main added ML_SERVICE_EVENT_MESSAGE (7ead26a); add a case after rebasing so default: does not print "unhandled event" for a legitimate event.
  7. [Low]:115-132: tdata.received_tokens (GString), session, prompt leak when an ASSERT_* fires in _run_lxm_session_test before cleanup. Use g_autoptr(GString) / early-out cleanup.
  8. [Low]:20,312: the whole file including main() is inside #if defined(ENABLE_LLAMACPP); keep main() outside the guard and use the DISABLED_ pattern from unittest_capi_service_extension.cc so the binary always builds.
  9. [Low] C++ // comments throughout (~95, 98, 117, 122, 130, 171, ...); every other file in tests/capi/ uses /* */. Also the # Increased timeout comment indentation in meson.build was already flagged; after fixing #4 the 120 s timeout can return to the standard 100.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@songgot@myungjoo@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[TEST] Add test case for lxm service internal API - #647

Open
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc
Open

[TEST] Add test case for lxm service internal API#647
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Added positive and negative TCs for lxm service internal API

Comment threadtests/capi/meson.build
Comment threadc/include/ml-lxm-service-internal.h
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from 8e582f7 to 508bc4aCompareSeptember 1, 2025 01:48
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from ac58e3e to f744577CompareSeptember 12, 2025 03:46
This commit introduces the ML LXM Service API, a new C API designed to
facilitate interactions with large-scale models such as Large Language
Models (LLMs)
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
- Added positive and negative TCs for lxm service internal API
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: This PR stacks on #646 (its first commit is byte-identical to #646's head) and adds tests/capi/unittest_capi_lxm_service.cc (2 tests: basicFlow_p, invalidParams_n) plus tests/capi/meson.build wiring. It merges cleanly and CI is green, but no CI lane has llama.cpp, so this file has never been compiled or run by CI. Findings are limited to the test commit (dd0e768).

  1. [High] Positive test is always skipped against current mainunittest_capi_lxm_service.cc:45,49: skip_lxm_tc checks for llama-2-7b-chat.Q2_K.gguf, but main's tests/test_models/config/config_single_llamacpp.conf (loaded at line ~164) now uses TinyStories-656K-Q2_K.gguf (LLAMACPP_TEST_MODEL in unittest_capi_service_extension.cc). A developer following the repo convention gets basicFlow_p skipped; one with the llama-2 file gets an ml_service_new failure. Rebase and reuse the same model constants (ideally hoist LLAMACPP_TEST_MODEL / URL / _get_model_path() into unittest_util).
  2. [High] Negative checks hidden behind a successful model load:221-275: all NULL-parameter checks for ml_lxm_prompt_*, ml_lxm_session_set_instructions, ml_lxm_session_respond, ml_lxm_session_destroy are inside if (ml_lxm_session_create (...) == ML_ERROR_NONE), and the else just prints and passes. The prompt APIs need no session or model at all. Without a model (CI, most dev machines) the test degrades to four checks and reports PASS. Move every prompt-API and NULL-handle check out of the conditional and use GTEST_SKIP for the session-dependent ones.
  3. [Medium] Build wiringtests/capi/meson.build:~82 re-declares llamacpp_dep = dependency('llama', required: false), which already exists in the root meson.build; neither debian/control nor packaging/machine-learning-api.spec provides llama, and the spec's %check is not updated, so the executable is never built / run in CI. Reuse the root llamacpp_dep and add the test under a %if 0%{?llamacpp_support} guard in %check (or state explicitly that CI coverage is deferred).
  4. [Medium] Fixed 10 s sleep:136g_usleep (10000000U) after respond is slow and flaky. Poll tdata.token_count with a bounded retry like unittest_capi_service_extension.cc:205-212, or use a GCond signalled by the callback.
  5. [Medium] Destroy during generation:257-271: invalidParams_n issues a real ml_lxm_session_respond and immediately destroys the prompt / session while the filter may still be generating and calling _lxm_token_cb, without checking whether the callback fired. Either remove the successful respond from the negative test or wait for completion before teardown.
  6. [Low]:97-100: main added ML_SERVICE_EVENT_MESSAGE (7ead26a); add a case after rebasing so default: does not print "unhandled event" for a legitimate event.
  7. [Low]:115-132: tdata.received_tokens (GString), session, prompt leak when an ASSERT_* fires in _run_lxm_session_test before cleanup. Use g_autoptr(GString) / early-out cleanup.
  8. [Low]:20,312: the whole file including main() is inside #if defined(ENABLE_LLAMACPP); keep main() outside the guard and use the DISABLED_ pattern from unittest_capi_service_extension.cc so the binary always builds.
  9. [Low] C++ // comments throughout (~95, 98, 117, 122, 130, 171, ...); every other file in tests/capi/ uses /* */. Also the # Increased timeout comment indentation in meson.build was already flagged; after fixing #4 the 120 s timeout can return to the standard 100.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@songgot@myungjoo@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[TEST] Add test case for lxm service internal API - #647

Open
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc
Open

[TEST] Add test case for lxm service internal API#647
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Added positive and negative TCs for lxm service internal API

Comment threadtests/capi/meson.build
Comment threadc/include/ml-lxm-service-internal.h
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from 8e582f7 to 508bc4aCompareSeptember 1, 2025 01:48
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from ac58e3e to f744577CompareSeptember 12, 2025 03:46
This commit introduces the ML LXM Service API, a new C API designed to
facilitate interactions with large-scale models such as Large Language
Models (LLMs)
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
- Added positive and negative TCs for lxm service internal API
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: This PR stacks on #646 (its first commit is byte-identical to #646's head) and adds tests/capi/unittest_capi_lxm_service.cc (2 tests: basicFlow_p, invalidParams_n) plus tests/capi/meson.build wiring. It merges cleanly and CI is green, but no CI lane has llama.cpp, so this file has never been compiled or run by CI. Findings are limited to the test commit (dd0e768).

  1. [High] Positive test is always skipped against current mainunittest_capi_lxm_service.cc:45,49: skip_lxm_tc checks for llama-2-7b-chat.Q2_K.gguf, but main's tests/test_models/config/config_single_llamacpp.conf (loaded at line ~164) now uses TinyStories-656K-Q2_K.gguf (LLAMACPP_TEST_MODEL in unittest_capi_service_extension.cc). A developer following the repo convention gets basicFlow_p skipped; one with the llama-2 file gets an ml_service_new failure. Rebase and reuse the same model constants (ideally hoist LLAMACPP_TEST_MODEL / URL / _get_model_path() into unittest_util).
  2. [High] Negative checks hidden behind a successful model load:221-275: all NULL-parameter checks for ml_lxm_prompt_*, ml_lxm_session_set_instructions, ml_lxm_session_respond, ml_lxm_session_destroy are inside if (ml_lxm_session_create (...) == ML_ERROR_NONE), and the else just prints and passes. The prompt APIs need no session or model at all. Without a model (CI, most dev machines) the test degrades to four checks and reports PASS. Move every prompt-API and NULL-handle check out of the conditional and use GTEST_SKIP for the session-dependent ones.
  3. [Medium] Build wiringtests/capi/meson.build:~82 re-declares llamacpp_dep = dependency('llama', required: false), which already exists in the root meson.build; neither debian/control nor packaging/machine-learning-api.spec provides llama, and the spec's %check is not updated, so the executable is never built / run in CI. Reuse the root llamacpp_dep and add the test under a %if 0%{?llamacpp_support} guard in %check (or state explicitly that CI coverage is deferred).
  4. [Medium] Fixed 10 s sleep:136g_usleep (10000000U) after respond is slow and flaky. Poll tdata.token_count with a bounded retry like unittest_capi_service_extension.cc:205-212, or use a GCond signalled by the callback.
  5. [Medium] Destroy during generation:257-271: invalidParams_n issues a real ml_lxm_session_respond and immediately destroys the prompt / session while the filter may still be generating and calling _lxm_token_cb, without checking whether the callback fired. Either remove the successful respond from the negative test or wait for completion before teardown.
  6. [Low]:97-100: main added ML_SERVICE_EVENT_MESSAGE (7ead26a); add a case after rebasing so default: does not print "unhandled event" for a legitimate event.
  7. [Low]:115-132: tdata.received_tokens (GString), session, prompt leak when an ASSERT_* fires in _run_lxm_session_test before cleanup. Use g_autoptr(GString) / early-out cleanup.
  8. [Low]:20,312: the whole file including main() is inside #if defined(ENABLE_LLAMACPP); keep main() outside the guard and use the DISABLED_ pattern from unittest_capi_service_extension.cc so the binary always builds.
  9. [Low] C++ // comments throughout (~95, 98, 117, 122, 130, 171, ...); every other file in tests/capi/ uses /* */. Also the # Increased timeout comment indentation in meson.build was already flagged; after fixing #4 the 120 s timeout can return to the standard 100.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@songgot@myungjoo@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[TEST] Add test case for lxm service internal API - #647

Open
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc
Open

[TEST] Add test case for lxm service internal API#647
songgot wants to merge 2 commits into
nnstreamer:mainfrom
songgot:dev_lxm_tc

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Added positive and negative TCs for lxm service internal API

Comment threadtests/capi/meson.build
Comment threadc/include/ml-lxm-service-internal.h
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from 8e582f7 to 508bc4aCompareSeptember 1, 2025 01:48
@songgot
songgotforce-pushed the dev_lxm_tc branch 4 times, most recently from ac58e3e to f744577CompareSeptember 12, 2025 03:46
This commit introduces the ML LXM Service API, a new C API designed to
facilitate interactions with large-scale models such as Large Language
Models (LLMs)
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
- Added positive and negative TCs for lxm service internal API
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: This PR stacks on #646 (its first commit is byte-identical to #646's head) and adds tests/capi/unittest_capi_lxm_service.cc (2 tests: basicFlow_p, invalidParams_n) plus tests/capi/meson.build wiring. It merges cleanly and CI is green, but no CI lane has llama.cpp, so this file has never been compiled or run by CI. Findings are limited to the test commit (dd0e768).

  1. [High] Positive test is always skipped against current mainunittest_capi_lxm_service.cc:45,49: skip_lxm_tc checks for llama-2-7b-chat.Q2_K.gguf, but main's tests/test_models/config/config_single_llamacpp.conf (loaded at line ~164) now uses TinyStories-656K-Q2_K.gguf (LLAMACPP_TEST_MODEL in unittest_capi_service_extension.cc). A developer following the repo convention gets basicFlow_p skipped; one with the llama-2 file gets an ml_service_new failure. Rebase and reuse the same model constants (ideally hoist LLAMACPP_TEST_MODEL / URL / _get_model_path() into unittest_util).
  2. [High] Negative checks hidden behind a successful model load:221-275: all NULL-parameter checks for ml_lxm_prompt_*, ml_lxm_session_set_instructions, ml_lxm_session_respond, ml_lxm_session_destroy are inside if (ml_lxm_session_create (...) == ML_ERROR_NONE), and the else just prints and passes. The prompt APIs need no session or model at all. Without a model (CI, most dev machines) the test degrades to four checks and reports PASS. Move every prompt-API and NULL-handle check out of the conditional and use GTEST_SKIP for the session-dependent ones.
  3. [Medium] Build wiringtests/capi/meson.build:~82 re-declares llamacpp_dep = dependency('llama', required: false), which already exists in the root meson.build; neither debian/control nor packaging/machine-learning-api.spec provides llama, and the spec's %check is not updated, so the executable is never built / run in CI. Reuse the root llamacpp_dep and add the test under a %if 0%{?llamacpp_support} guard in %check (or state explicitly that CI coverage is deferred).
  4. [Medium] Fixed 10 s sleep:136g_usleep (10000000U) after respond is slow and flaky. Poll tdata.token_count with a bounded retry like unittest_capi_service_extension.cc:205-212, or use a GCond signalled by the callback.
  5. [Medium] Destroy during generation:257-271: invalidParams_n issues a real ml_lxm_session_respond and immediately destroys the prompt / session while the filter may still be generating and calling _lxm_token_cb, without checking whether the callback fired. Either remove the successful respond from the negative test or wait for completion before teardown.
  6. [Low]:97-100: main added ML_SERVICE_EVENT_MESSAGE (7ead26a); add a case after rebasing so default: does not print "unhandled event" for a legitimate event.
  7. [Low]:115-132: tdata.received_tokens (GString), session, prompt leak when an ASSERT_* fires in _run_lxm_session_test before cleanup. Use g_autoptr(GString) / early-out cleanup.
  8. [Low]:20,312: the whole file including main() is inside #if defined(ENABLE_LLAMACPP); keep main() outside the guard and use the DISABLED_ pattern from unittest_capi_service_extension.cc so the binary always builds.
  9. [Low] C++ // comments throughout (~95, 98, 117, 122, 130, 171, ...); every other file in tests/capi/ uses /* */. Also the # Increased timeout comment indentation in meson.build was already flagged; after fixing #4 the 120 s timeout can return to the standard 100.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@songgot@myungjoo@myungjoo-bot