Skip to content

Conversation

@Saumya-R
Copy link
Contributor

Checked and added test cases in RUST and CPP for the following requirements:

  1. The component shall accept keys that consist solely of alphanumeric characters, underscores, or dashes.
  2. The component shall encode each key as valid UTF-8.
    3 . The component shall guarantee that each key is unique.
  3. The component shall limit the maximum length of a key to 32 bytes.
  4. The component shall accept only values of the following data types: Number, String, Null, Array[Value], or Dictionary{Key:Value}.
  5. The component shall serialize and deserialize all values to and from JSON.
  6. The component shall limit the maximum length of a value to 1024 bytes.

@github-actions
Copy link

github-actions bot commented Jan 21, 2026

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.3.0) and connecting to it...
INFO: Invocation ID: 6b4aca4f-2ae9-4f5c-81b6-0783f5b9f76e
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
DEBUG: Rule 'rust_qnx8_toolchain+' indicated that a canonical reproducible form can be obtained by modifying arguments integrity = "sha256-oEubHgeZDdT0svMmBKJx7c3/2TdSI/vfwRUyDn+TPGA="
DEBUG: Repository rust_qnx8_toolchain+ instantiated at:
  <builtin>: in <toplevel>
Repository rule http_archive defined at:
  /home/runner/.bazel/external/bazel_tools/tools/build_defs/repo/http.bzl:394:31: in <toplevel>
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
WARNING: For repository 'score_process', the root module requires module version [email protected], but got [email protected] in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
Computing main repo mapping: 
Loading: 
Loading: 3 packages loaded
Loading: 3 packages loaded
    currently loading: 
Analyzing: target //:license-check (4 packages loaded, 0 targets configured)
Analyzing: target //:license-check (4 packages loaded, 0 targets configured)

Analyzing: target //:license-check (87 packages loaded, 10 targets configured)

Analyzing: target //:license-check (89 packages loaded, 10 targets configured)

Analyzing: target //:license-check (150 packages loaded, 1944 targets configured)

Analyzing: target //:license-check (159 packages loaded, 6997 targets configured)

Analyzing: target //:license-check (160 packages loaded, 6997 targets configured)

INFO: Analyzed target //:license-check (162 packages loaded, 9013 targets configured).
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 62 packages from Cargo.lock to bazel-out/k8-fastbuild/bin/formatted.txt
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 30.663s, Critical Path: 0.44s
INFO: 14 processes: 5 disk cache hit, 9 internal.
INFO: Build completed successfully, 14 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@github-actions
Copy link

The created documentation from the pull request is available at: docu-html

@Saumya-R Saumya-R force-pushed the saumya_CIT_testing_add_missing_cases branch 2 times, most recently from bbbe842 to 6b59c28 Compare January 21, 2026 07:41
@Saumya-R Saumya-R requested a review from Copilot January 21, 2026 07:41
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive test coverage for key-value store (KVS) component requirements across Rust, C++, and Python test suites. The changes validate key format constraints, UTF-8 encoding, uniqueness guarantees, length limits, supported data types, and JSON serialization.

Changes:

  • Added test cases for key validation rules (alphanumeric/underscore/dash only, UTF-8 encoding, uniqueness, 32-byte limit)
  • Added test cases for value constraints (supported data types, JSON serialization, 1024-byte limit)
  • Enhanced test scenarios to verify boundary conditions for maximum key and value lengths

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 8 comments.

File Description
tests/rust_test_scenarios/src/cit/supported_datatypes.rs Added key validation tests, UTF-8 key tests, uniqueness checks, and boundary tests for 1024/1025 byte string values
tests/python_test_cases/tests/test_cit_supported_datatypes.py Updated test assertions to verify valid/invalid keys, UTF-8 support, uniqueness, and added test classes for 1024/1025 byte strings
tests/cpp_test_scenarios/src/cit/supported_datatypes.cpp Added key validation logic, UTF-8 key tests, uniqueness checks, and test scenarios for maximum length string values

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Saumya-R Saumya-R force-pushed the saumya_CIT_testing_add_missing_cases branch from 2798638 to e71670a Compare January 21, 2026 09:10
@Saumya-R Saumya-R requested a review from Copilot January 21, 2026 09:11
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 14 out of 15 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Saumya-R Saumya-R force-pushed the saumya_CIT_testing_add_missing_cases branch from e4f92df to 0b035f9 Compare January 21, 2026 09:16
Copy link
Contributor

@PiotrKorkus PiotrKorkus left a comment

Choose a reason for hiding this comment

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

Could you check if you are using correct clang rules? All files should be formatted already after #219

It is hard to distinguish between relevant changes and formatting

@Saumya-R Saumya-R force-pushed the saumya_CIT_testing_add_missing_cases branch from 0b035f9 to 32f7dcc Compare January 21, 2026 09:25
ran clang format for cpp

adding xfail for uniqueness and length of keys

adding xfail for the special char for keys

made the comments cleaner

format fix

alinging to new folders
@Saumya-R Saumya-R force-pushed the saumya_CIT_testing_add_missing_cases branch from 6edb2c1 to 032f307 Compare January 21, 2026 09:57
@Saumya-R
Copy link
Contributor Author

Could you check if you are using correct clang rules? All files should be formatted already after #219

It is hard to distinguish between relevant changes and formatting

I have rebased again . Should make the changes easy to see.

@arkjedrz arkjedrz self-requested a review January 21, 2026 10:27
Copy link
Contributor

@arkjedrz arkjedrz left a comment

Choose a reason for hiding this comment

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

Three of requirements tested here should be discussed during forthcoming CFT meeting.

)
@pytest.mark.FullyVerifies([])
@pytest.mark.Description("Verifies that KVS supports UTF-8 string keys for storing and retrieving values.")
@pytest.mark.Description(
Copy link
Contributor

Choose a reason for hiding this comment

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

Why requirements are placed in description instead of PartiallyVerifies and FullyVerifies?

@pytest.mark.xfail(
reason="KVS does not implement requirement #1: key character set (alphanumeric, underscore, dash) enforcement. It accepts space,special char,invalid keys."
)
def test_ok(self, results: ScenarioResult, logs_info_level: LogContainer) -> None:
Copy link
Contributor

Choose a reason for hiding this comment

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

Instead of checking 4 things at one function - separate it to multiple tests.
For example: test_ok to test_valid_chars, test_utf8, test_max_key_size..

1. The component shall accept keys that consist solely of alphanumeric characters, underscores, or dashes.
2. The component shall encode each key as valid UTF-8.
3. The component shall guarantee that each key is unique.
4. The component shall limit the maximum length of a key to 32 bytes.
Copy link
Contributor

Choose a reason for hiding this comment

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

This requirement should be discussed during CFT meeting - seems unnecessary restrictive.

@pytest.mark.FullyVerifies([])
@pytest.mark.Description("Verifies that KVS supports UTF-8 string keys for storing and retrieving values.")
@pytest.mark.Description(
"""
Copy link
Contributor

Choose a reason for hiding this comment

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

Again - not sure if that's the right place.

Test cases for value requirements:
5. The component shall accept only values of the following data types: Number, String, Null, Array[Value], or Dictionary{Key:Value}.
6. The component shall serialize and deserialize all values to and from JSON.
7. The component shall limit the maximum length of a value to 1024 bytes.
Copy link
Contributor

Choose a reason for hiding this comment

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

This requirement should be discussed during CFT meeting. Non-string types seem to not be taken into consideration here.

Copy link
Contributor

Choose a reason for hiding this comment

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

Unnecessary reformat.

Copy link
Contributor

Choose a reason for hiding this comment

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

Unnecessary reformat.

@pytest.mark.Description(
"""
Test cases for key requirements:
1. The component shall accept keys that consist solely of alphanumeric characters, underscores, or dashes.
Copy link
Contributor

Choose a reason for hiding this comment

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

This requirement should be discussed during CFT meeting - seems unnecessary restrictive.

Sign up for free to 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