@@ -922,6 +922,196 @@ func TestPackageIndexPackagesPlatformsToolsDependenciesVersionNonSemver(t *testi
922922 checkPackageIndexRuleFunction (PackageIndexPackagesPlatformsToolsDependenciesVersionNonSemver , testTables , t )
923923}
924924
925+ func TestPackageIndexPackagesToolsMissing (t * testing.T ) {
926+ testTables := []packageIndexRuleFunctionTestTable {
927+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
928+ {"packages[].tools missing" , "packages-tools-missing" , ruleresult .Fail , "^foopackager$" },
929+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
930+ }
931+
932+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsMissing , testTables , t )
933+ }
934+
935+ func TestPackageIndexPackagesToolsIncorrectType (t * testing.T ) {
936+ testTables := []packageIndexRuleFunctionTestTable {
937+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
938+ {"Incorrect packages[].tools type" , "packages-tools-incorrect-type" , ruleresult .Fail , "^foopackager$" },
939+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
940+ }
941+
942+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsIncorrectType , testTables , t )
943+ }
944+
945+ func TestPackageIndexPackagesToolsAdditionalProperties (t * testing.T ) {
946+ testTables := []packageIndexRuleFunctionTestTable {
947+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
948+ {"Additional packages[].tools[] properties" , "packages-tools-additional-properties" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2$" },
949+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
950+ }
951+
952+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsAdditionalProperties , testTables , t )
953+ }
954+
955+ func TestPackageIndexPackagesToolsNameMissing (t * testing.T ) {
956+ testTables := []packageIndexRuleFunctionTestTable {
957+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
958+ {"packages[].tools[].name missing" , "packages-tools-name-missing" , ruleresult .Fail , "^/packages/0/tools/0$" },
959+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
960+ }
961+
962+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsNameMissing , testTables , t )
963+ }
964+
965+ func TestPackageIndexPackagesToolsNameIncorrectType (t * testing.T ) {
966+ testTables := []packageIndexRuleFunctionTestTable {
967+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
968+ {"Incorrect packages[].tools.name type" , "packages-tools-name-incorrect-type" , ruleresult .Fail , "^/packages/0/tools/0$" },
969+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
970+ }
971+
972+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsNameIncorrectType , testTables , t )
973+ }
974+
975+ func TestPackageIndexPackagesToolsNameLTMinLength (t * testing.T ) {
976+ testTables := []packageIndexRuleFunctionTestTable {
977+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
978+ {"packages[].tools[].name < min length" , "packages-tools-name-length-lt" , ruleresult .Fail , "^/packages/0/tools/0$" },
979+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
980+ }
981+
982+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsNameLTMinLength , testTables , t )
983+ }
984+
985+ func TestPackageIndexPackagesToolsVersionMissing (t * testing.T ) {
986+ testTables := []packageIndexRuleFunctionTestTable {
987+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
988+ {"packages[].tools[].version missing" , "packages-tools-version-missing" , ruleresult .Fail , "^/packages/0/tools/0$" },
989+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
990+ }
991+
992+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsVersionMissing , testTables , t )
993+ }
994+
995+ func TestPackageIndexPackagesToolsVersionIncorrectType (t * testing.T ) {
996+ testTables := []packageIndexRuleFunctionTestTable {
997+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
998+ {"Incorrect packages[].tools[].version type" , "packages-tools-version-incorrect-type" , ruleresult .Fail , "^/packages/0/tools/0$" },
999+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1000+ }
1001+
1002+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsVersionIncorrectType , testTables , t )
1003+ }
1004+
1005+ func TestPackageIndexPackagesToolsVersionNonRelaxedSemver (t * testing.T ) {
1006+ testTables := []packageIndexRuleFunctionTestTable {
1007+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1008+ {"packages[].tools[].version not relaxed semver" , "packages-tools-version-non-relaxed-semver" , ruleresult .Fail , "^foopackager:openocd@foo$" },
1009+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1010+ }
1011+
1012+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsVersionNonRelaxedSemver , testTables , t )
1013+ }
1014+
1015+ func TestPackageIndexPackagesToolsVersionNonSemver (t * testing.T ) {
1016+ testTables := []packageIndexRuleFunctionTestTable {
1017+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1018+ {"packages[].tools[].version not semver" , "packages-tools-version-not-semver" , ruleresult .Fail , "^foopackager:openocd@1.0$" },
1019+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1020+ }
1021+
1022+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsVersionNonSemver , testTables , t )
1023+ }
1024+
1025+ func TestPackageIndexPackagesToolsSystemsMissing (t * testing.T ) {
1026+ testTables := []packageIndexRuleFunctionTestTable {
1027+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1028+ {"packages[].tools[].systems[] missing" , "packages-tools-systems-missing" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2$" },
1029+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1030+ }
1031+
1032+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsMissing , testTables , t )
1033+ }
1034+
1035+ func TestPackageIndexPackagesToolsSystemsIncorrectType (t * testing.T ) {
1036+ testTables := []packageIndexRuleFunctionTestTable {
1037+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1038+ {"Incorrect packages[].tools[].systems type" , "packages-tools-systems-incorrect-type" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2$" },
1039+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1040+ }
1041+
1042+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsIncorrectType , testTables , t )
1043+ }
1044+
1045+ func TestPackageIndexPackagesToolsSystemsAdditionalProperties (t * testing.T ) {
1046+ testTables := []packageIndexRuleFunctionTestTable {
1047+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1048+ {"Additional packages[].tools[].systems[] properties" , "packages-tools-systems-additional-properties" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1049+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1050+ }
1051+
1052+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsAdditionalProperties , testTables , t )
1053+ }
1054+
1055+ func TestPackageIndexPackagesToolsSystemsHostMissing (t * testing.T ) {
1056+ testTables := []packageIndexRuleFunctionTestTable {
1057+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1058+ {"packages[].tools[].systems[].host missing" , "packages-tools-systems-host-missing" , ruleresult .Fail , "^/packages/0/tools/0/systems/0$" },
1059+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1060+ }
1061+
1062+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsHostMissing , testTables , t )
1063+ }
1064+
1065+ func TestPackageIndexPackagesToolsSystemsHostIncorrectType (t * testing.T ) {
1066+ testTables := []packageIndexRuleFunctionTestTable {
1067+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1068+ {"Incorrect packages[].tools[].systems[].host type" , "packages-tools-systems-host-incorrect-type" , ruleresult .Fail , "^/packages/0/tools/0/systems/0$" },
1069+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1070+ }
1071+
1072+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsHostIncorrectType , testTables , t )
1073+ }
1074+
1075+ func TestPackageIndexPackagesToolsSystemsHostInvalid (t * testing.T ) {
1076+ testTables := []packageIndexRuleFunctionTestTable {
1077+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1078+ {"Invalid packages[].tools[].systems[].host format" , "packages-tools-systems-host-invalid" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - foo$" },
1079+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1080+ }
1081+
1082+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsHostInvalid , testTables , t )
1083+ }
1084+
1085+ func TestPackageIndexPackagesToolsSystemsUrlMissing (t * testing.T ) {
1086+ testTables := []packageIndexRuleFunctionTestTable {
1087+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1088+ {"packages[].tools[].systems[].url missing" , "packages-tools-systems-url-missing" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1089+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1090+ }
1091+
1092+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsUrlMissing , testTables , t )
1093+ }
1094+
1095+ func TestPackageIndexPackagesToolsSystemsUrlIncorrectType (t * testing.T ) {
1096+ testTables := []packageIndexRuleFunctionTestTable {
1097+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1098+ {"Incorrect packages[].tools[].systems[].url type" , "packages-tools-systems-url-incorrect-type" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1099+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1100+ }
1101+
1102+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsUrlIncorrectType , testTables , t )
1103+ }
1104+
1105+ func TestPackageIndexPackagesToolsSystemsUrlInvalidFormat (t * testing.T ) {
1106+ testTables := []packageIndexRuleFunctionTestTable {
1107+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1108+ {"Incorrect packages[].tools[].systems[].url format" , "packages-tools-systems-url-invalid-format" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1109+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1110+ }
1111+
1112+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsUrlInvalidFormat , testTables , t )
1113+ }
1114+
9251115func TestPackageIndexPackagesToolsSystemsURLDeadLink (t * testing.T ) {
9261116 testTables := []packageIndexRuleFunctionTestTable {
9271117 {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
@@ -931,3 +1121,113 @@ func TestPackageIndexPackagesToolsSystemsURLDeadLink(t *testing.T) {
9311121
9321122 checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsURLDeadLink , testTables , t )
9331123}
1124+
1125+ func TestPackageIndexPackagesToolsSystemsArchiveFileNameMissing (t * testing.T ) {
1126+ testTables := []packageIndexRuleFunctionTestTable {
1127+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1128+ {"packages[].tools[].systems[].archiveFileName missing" , "packages-tools-systems-archivefilename-missing" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1129+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1130+ }
1131+
1132+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsArchiveFileNameMissing , testTables , t )
1133+ }
1134+
1135+ func TestPackageIndexPackagesToolsSystemsArchiveFileNameIncorrectType (t * testing.T ) {
1136+ testTables := []packageIndexRuleFunctionTestTable {
1137+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1138+ {"Incorrect packages[].tools[].systems[].archiveFileName type" , "packages-tools-systems-archivefilename-incorrect-type" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1139+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1140+ }
1141+
1142+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsArchiveFileNameIncorrectType , testTables , t )
1143+ }
1144+
1145+ func TestPackageIndexPackagesToolsSystemsArchiveFileNameLTMinLength (t * testing.T ) {
1146+ testTables := []packageIndexRuleFunctionTestTable {
1147+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1148+ {"packages[].tools[].systems[].archiveFileName < min length" , "packages-tools-systems-archivefilename-length-lt" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1149+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1150+ }
1151+
1152+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsArchiveFileNameLTMinLength , testTables , t )
1153+ }
1154+
1155+ func TestPackageIndexPackagesToolsSystemsArchiveFileNameInvalid (t * testing.T ) {
1156+ testTables := []packageIndexRuleFunctionTestTable {
1157+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1158+ {"Invalid packages[].tools[].systems[].archiveFileName format" , "packages-tools-systems-archivefilename-invalid" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1159+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1160+ }
1161+
1162+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsArchiveFileNameInvalid , testTables , t )
1163+ }
1164+
1165+ func TestPackageIndexPackagesToolsSystemsChecksumMissing (t * testing.T ) {
1166+ testTables := []packageIndexRuleFunctionTestTable {
1167+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1168+ {"packages[].tools[].systems[].checksum missing" , "packages-tools-systems-checksum-missing" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1169+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1170+ }
1171+
1172+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsChecksumMissing , testTables , t )
1173+ }
1174+
1175+ func TestPackageIndexPackagesToolsSystemsChecksumIncorrectType (t * testing.T ) {
1176+ testTables := []packageIndexRuleFunctionTestTable {
1177+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1178+ {"Incorrect packages[].tools[].systems[].checksum type" , "packages-tools-systems-checksum-incorrect-type" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1179+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1180+ }
1181+
1182+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsChecksumIncorrectType , testTables , t )
1183+ }
1184+
1185+ func TestPackageIndexPackagesToolsSystemsChecksumInvalid (t * testing.T ) {
1186+ testTables := []packageIndexRuleFunctionTestTable {
1187+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1188+ {"Invalid packages[].tools[].systems[].checksum format" , "packages-tools-systems-checksum-invalid" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1189+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1190+ }
1191+
1192+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsChecksumInvalid , testTables , t )
1193+ }
1194+
1195+ func TestPackageIndexPackagesToolsSystemsChecksumDiscouragedAlgorithm (t * testing.T ) {
1196+ testTables := []packageIndexRuleFunctionTestTable {
1197+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1198+ {"packages[].tools[].systems[].checksum uses discouraged algorithm" , "packages-tools-systems-checksum-discouraged" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1199+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1200+ }
1201+
1202+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsChecksumDiscouragedAlgorithm , testTables , t )
1203+ }
1204+
1205+ func TestPackageIndexPackagesToolsSystemsSizeMissing (t * testing.T ) {
1206+ testTables := []packageIndexRuleFunctionTestTable {
1207+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1208+ {"packages[].tools[].systems[].size missing" , "packages-tools-systems-size-missing" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1209+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1210+ }
1211+
1212+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsSizeMissing , testTables , t )
1213+ }
1214+
1215+ func TestPackageIndexPackagesToolsSystemsSizeIncorrectType (t * testing.T ) {
1216+ testTables := []packageIndexRuleFunctionTestTable {
1217+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1218+ {"Incorrect packages[].tools[].systems[].size type" , "packages-tools-systems-size-incorrect-type" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1219+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1220+ }
1221+
1222+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsSizeIncorrectType , testTables , t )
1223+ }
1224+
1225+ func TestPackageIndexPackagesToolsSystemsSizeInvalid (t * testing.T ) {
1226+ testTables := []packageIndexRuleFunctionTestTable {
1227+ {"Invalid JSON" , "invalid-JSON" , ruleresult .NotRun , "" },
1228+ {"Invalid packages[].tools[].systems[].size format" , "packages-tools-systems-size-invalid" , ruleresult .Fail , "^foopackager:openocd@0\\ .11\\ .0-arduino2 - aarch64-linux-gnu$" },
1229+ {"Valid" , "valid-package-index" , ruleresult .Pass , "" },
1230+ }
1231+
1232+ checkPackageIndexRuleFunction (PackageIndexPackagesToolsSystemsSizeInvalid , testTables , t )
1233+ }
0 commit comments