diff --git a/tests/types/fusesoc-test.json b/tests/types/fusesoc-test.json new file mode 100644 index 00000000..d35bb33f --- /dev/null +++ b/tests/types/fusesoc-test.json @@ -0,0 +1,318 @@ +{ + "$schema": "https://packageurl.org/schemas/purl-test.schema-0.1.json", + "tests": [ + { + "description": "Parse test for PURL type: fusesoc", + "test_group": "base", + "test_type": "parse", + "input": "pkg:fusesoc/open-logic/open-logic/base@3.3.0", + "expected_output": { + "type": "fusesoc", + "namespace": "open-logic/open-logic", + "name": "base", + "version": "3.3.0", + "qualifiers": null, + "subpath": null + }, + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Roundtrip test for PURL type: fusesoc", + "test_group": "base", + "test_type": "roundtrip", + "input": "pkg:fusesoc/open-logic/open-logic/base@3.3.0", + "expected_output": "pkg:fusesoc/open-logic/open-logic/base@3.3.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Build test for PURL type: fusesoc", + "test_group": "base", + "test_type": "build", + "input": { + "type": "fusesoc", + "namespace": "open-logic/open-logic", + "name": "base", + "version": "3.3.0", + "qualifiers": null, + "subpath": null + }, + "expected_output": "pkg:fusesoc/open-logic/open-logic/base@3.3.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Parse test for PURL type: fusesoc", + "test_group": "base", + "test_type": "parse", + "input": "pkg:fusesoc/fusesoc/utils/blinky@1.1.0", + "expected_output": { + "type": "fusesoc", + "namespace": "fusesoc/utils", + "name": "blinky", + "version": "1.1.0", + "qualifiers": null, + "subpath": null + }, + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Roundtrip test for PURL type: fusesoc", + "test_group": "base", + "test_type": "roundtrip", + "input": "pkg:fusesoc/fusesoc/utils/blinky@1.1.0", + "expected_output": "pkg:fusesoc/fusesoc/utils/blinky@1.1.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Build test for PURL type: fusesoc", + "test_group": "base", + "test_type": "build", + "input": { + "type": "fusesoc", + "namespace": "fusesoc/utils", + "name": "blinky", + "version": "1.1.0", + "qualifiers": null, + "subpath": null + }, + "expected_output": "pkg:fusesoc/fusesoc/utils/blinky@1.1.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Parse test for PURL type: fusesoc", + "test_group": "base", + "test_type": "parse", + "input": "pkg:fusesoc/award-winning/serv/servile@1.3.0", + "expected_output": { + "type": "fusesoc", + "namespace": "award-winning/serv", + "name": "servile", + "version": "1.3.0", + "qualifiers": null, + "subpath": null + }, + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Roundtrip test for PURL type: fusesoc", + "test_group": "base", + "test_type": "roundtrip", + "input": "pkg:fusesoc/award-winning/serv/servile@1.3.0", + "expected_output": "pkg:fusesoc/award-winning/serv/servile@1.3.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Build test for PURL type: fusesoc", + "test_group": "base", + "test_type": "build", + "input": { + "type": "fusesoc", + "namespace": "award-winning/serv", + "name": "servile", + "version": "1.3.0", + "qualifiers": null, + "subpath": null + }, + "expected_output": "pkg:fusesoc/award-winning/serv/servile@1.3.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Parse test for PURL type: fusesoc", + "test_group": "base", + "test_type": "parse", + "input": "pkg:fusesoc/yosys/techlibs/ecp5@0.8.0", + "expected_output": { + "type": "fusesoc", + "namespace": "yosys/techlibs", + "name": "ecp5", + "version": "0.8.0", + "qualifiers": null, + "subpath": null + }, + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Roundtrip test for PURL type: fusesoc", + "test_group": "base", + "test_type": "roundtrip", + "input": "pkg:fusesoc/yosys/techlibs/ecp5@0.8.0", + "expected_output": "pkg:fusesoc/yosys/techlibs/ecp5@0.8.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Build test for PURL type: fusesoc", + "test_group": "base", + "test_type": "build", + "input": { + "type": "fusesoc", + "namespace": "yosys/techlibs", + "name": "ecp5", + "version": "0.8.0", + "qualifiers": null, + "subpath": null + }, + "expected_output": "pkg:fusesoc/yosys/techlibs/ecp5@0.8.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Roundtrip test for PURL type: fusesoc, check case sensitivity", + "test_group": "base", + "test_type": "roundtrip", + "input": "pkg:fusesoc/fusesoc/utils/Blinky@1.1.0", + "expected_output": "pkg:fusesoc/fusesoc/utils/Blinky@1.1.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Roundtrip test for PURL type: fusesoc, check case sensitivity", + "test_group": "base", + "test_type": "roundtrip", + "input": "pkg:fusesoc/fusesoc/utils/Blinky@1.1.0", + "expected_output": "pkg:fusesoc/fusesoc/utils/blinky@1.1.0", + "expected_failure": true, + "expected_failure_reason": null + }, + { + "description": "Roundtrip test for PURL type: fusesoc, check case sensitivity", + "test_group": "base", + "test_type": "roundtrip", + "input": "pkg:fusesoc/fusesoc/utils/blinky@1.1.0", + "expected_output": "pkg:fusesoc/fusesoc/utils/Blinky@1.1.0", + "expected_failure": true, + "expected_failure_reason": null + }, + { + "description": "Roundtrip test for PURL type: fusesoc, check case sensitivity", + "test_group": "base", + "test_type": "roundtrip", + "input": "pkg:fusesoc/fuSesoc/utilS/Blinky@1.1.0", + "expected_output": "pkg:fusesoc/fuSesoc/utilS/Blinky@1.1.0", + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Parse test for PURL type: fusesoc, check case sensitivity", + "test_group": "base", + "test_type": "parse", + "input": "pkg:fusesoc/yoSys/techLibs/ecp5@0.8.0", + "expected_output": { + "type": "fusesoc", + "namespace": "yosys/techlibs", + "name": "ecp5", + "version": "0.8.0", + "qualifiers": null, + "subpath": null + }, + "expected_failure": true, + "expected_failure_reason": null + }, + { + "description": "Parse test for PURL type: fusesoc, check case sensitivity", + "test_group": "base", + "test_type": "parse", + "input": "pkg:fusesoc/yoSys/techLibs/ecp5@0.8.0", + "expected_output": { + "type": "fusesoc", + "namespace": "yoSys/techLibs", + "name": "ecp5", + "version": "0.8.0", + "qualifiers": null, + "subpath": null + }, + "expected_failure": false, + "expected_failure_reason": null + }, + { + "description": "Parse test for PURL type: fusesoc, version shortening", + "test_group": "base", + "test_type": "parse", + "input": "pkg:fusesoc/yoSys/techLibs/ecp5@0.8.0", + "expected_output": { + "type": "fusesoc", + "namespace": "yoSys/techLibs", + "name": "ecp5", + "version": "0.8", + "qualifiers": null, + "subpath": null + }, + "expected_failure": true, + "expected_failure_reason": null + }, + { + "description": "Build test for PURL type: fusesoc, version shortening", + "test_group": "base", + "test_type": "build", + "input": { + "type": "fusesoc", + "namespace": "open-logic/open-logic", + "name": "base", + "version": "3.3.0", + "qualifiers": null, + "subpath": null + }, + "expected_output": "pkg:fusesoc/open-logic/open-logic/base@3.3", + "expected_failure": true, + "expected_failure_reason": null + }, + { + "description": "Build test for PURL type: fusesoc, case sensitivity", + "test_group": "base", + "test_type": "build", + "input": { + "type": "fusesoc", + "namespace": "open-Logic/open-logic", + "name": "base", + "version": "3.3.0", + "qualifiers": null, + "subpath": null + }, + "expected_output": "pkg:fusesoc/open-logic/open-logic/base@3.3.0", + "expected_failure": true, + "expected_failure_reason": null + }, + { + "description": "Build test for PURL type: fusesoc, case sensitivity", + "test_group": "base", + "test_type": "build", + "input": { + "type": "fusesoc", + "namespace": "open-logic/open-logic", + "name": "basE", + "version": "3.3.0", + "qualifiers": null, + "subpath": null + }, + "expected_output": "pkg:fusesoc/open-logic/open-logic/base@3.3.0", + "expected_failure": true, + "expected_failure_reason": null + }, + { + "description": "Build test for PURL type: fusesoc, case sensitivity", + "test_group": "base", + "test_type": "build", + "input": { + "type": "fusesoc", + "namespace": "open-logic/open-logic", + "name": "basE", + "version": "3.3.0", + "qualifiers": null, + "subpath": null + }, + "expected_output": "pkg:fusesoc/open-logic/open-logic/basE@3.3.0", + "expected_failure": false, + "expected_failure_reason": null + } + + ] +} diff --git a/types/fusesoc-definition.json b/types/fusesoc-definition.json new file mode 100644 index 00000000..c0b5ae4e --- /dev/null +++ b/types/fusesoc-definition.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://packageurl.org/schemas/purl-type-definition.schema-1.0.json", + "$id": "https://packageurl.org/types/fusesoc-definition.json", + "type": "fusesoc", + "type_name": "FuseSoC core", + "description": "FuseSoC core", + "repository": { + "use_repository": true, + "default_repository_url": "https://cores.fusesoc.net" + }, + "namespace_definition": { + "native_name": "vendor/library", + "case_sensitive": true, + "note": "The namespace contains both the vendor and library part of the fusesoc core name.", + "requirement": "required" + }, + "name_definition": { + "requirement": "required", + "native_name": "name", + "case_sensitive": true + }, + "version_definition": { + "requirement": "optional", + "native_name": "version", + "note": "The version is the semantic version of the fusesoc core." + }, + "examples": [ + "pkg:fusesoc/open-logic/open-logic/base@3.3.0", + "pkg:fusesoc/fusesoc/utils/blinky@1.1.0", + "pkg:fusesoc/award-winning/serv/servile@1.3.0", + "pkg:fusesoc/yosys/techlibs/ecp5@0.8.0" + ] +}