mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-25 18:55:32 -06:00
Fix crash when queuingStructure.json contains [children] entries.
Affects ISSUE #206 * Add a blank node for [children] in the QueueNode parser. * Add two unit tests to cover loading content with and without [children] entries.
This commit is contained in:
@@ -0,0 +1,247 @@
|
||||
{
|
||||
"Network": {
|
||||
"Generated_PN_1": {
|
||||
"downloadBandwidthMbps": 10000,
|
||||
"uploadBandwidthMbps": 10000,
|
||||
"downloadBandwidthMbpsMin": 9500,
|
||||
"uploadBandwidthMbpsMin": 9500,
|
||||
"classid": "0x1:0x3",
|
||||
"up_classid": "0x1:0x3",
|
||||
"parentClassID": "0x1:",
|
||||
"up_parentClassID": "0x1:",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0x3",
|
||||
"cpuNum": "0x0",
|
||||
"up_cpuNum": "0x0",
|
||||
"circuits": [
|
||||
{
|
||||
"maxDownload": 545,
|
||||
"maxUpload": 545,
|
||||
"minDownload": 27,
|
||||
"minUpload": 5,
|
||||
"circuitID": "9999",
|
||||
"circuitName": "968 Circle St., Gurnee, IL 60031",
|
||||
"ParentNode": "Generated_PN_1",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "1",
|
||||
"deviceName": "Device 1",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"100.64.1.2",
|
||||
"100.64.0.14"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": ""
|
||||
}
|
||||
],
|
||||
"classid": "0x1:0x4",
|
||||
"up_classid": "0x1:0x4",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0x4",
|
||||
"comment": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"Generated_PN_2": {
|
||||
"downloadBandwidthMbps": 10000,
|
||||
"uploadBandwidthMbps": 10000,
|
||||
"downloadBandwidthMbpsMin": 9500,
|
||||
"uploadBandwidthMbpsMin": 9500,
|
||||
"classid": "0x2:0x3",
|
||||
"up_classid": "0x2:0x3",
|
||||
"parentClassID": "0x2:",
|
||||
"up_parentClassID": "0x2:",
|
||||
"classMajor": "0x2",
|
||||
"up_classMajor": "0x2",
|
||||
"classMinor": "0x3",
|
||||
"cpuNum": "0x1",
|
||||
"up_cpuNum": "0x1",
|
||||
"circuits": [
|
||||
{
|
||||
"maxDownload": 669,
|
||||
"maxUpload": 222,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "104",
|
||||
"circuitName": "7",
|
||||
"ParentNode": "Generated_PN_2",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_7",
|
||||
"deviceName": "104",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"10.30.3.49"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x2:0x4",
|
||||
"up_classid": "0x2:0x4",
|
||||
"classMajor": "0x2",
|
||||
"up_classMajor": "0x2",
|
||||
"classMinor": "0x4",
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Generated_PN_3": {
|
||||
"downloadBandwidthMbps": 10000,
|
||||
"uploadBandwidthMbps": 10000,
|
||||
"downloadBandwidthMbpsMin": 9500,
|
||||
"uploadBandwidthMbpsMin": 9500,
|
||||
"classid": "0x3:0x3",
|
||||
"up_classid": "0x3:0x3",
|
||||
"parentClassID": "0x3:",
|
||||
"up_parentClassID": "0x3:",
|
||||
"classMajor": "0x3",
|
||||
"up_classMajor": "0x3",
|
||||
"classMinor": "0x3",
|
||||
"cpuNum": "0x2",
|
||||
"up_cpuNum": "0x2",
|
||||
"circuits": [
|
||||
{
|
||||
"maxDownload": 11,
|
||||
"maxUpload": 2,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "101",
|
||||
"circuitName": "3",
|
||||
"ParentNode": "Generated_PN_3",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_3",
|
||||
"deviceName": "101",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"10.19.7.19"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x3:0x4",
|
||||
"up_classid": "0x3:0x4",
|
||||
"classMajor": "0x3",
|
||||
"up_classMajor": "0x3",
|
||||
"classMinor": "0x4",
|
||||
"comment": "COMMENT"
|
||||
},
|
||||
{
|
||||
"maxDownload": 111,
|
||||
"maxUpload": 111,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "102",
|
||||
"circuitName": "4",
|
||||
"ParentNode": "Generated_PN_3",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_4",
|
||||
"deviceName": "102",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"5.63.189.26"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x3:0x5",
|
||||
"up_classid": "0x3:0x5",
|
||||
"classMajor": "0x3",
|
||||
"up_classMajor": "0x3",
|
||||
"classMinor": "0x5",
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Generated_PN_4": {
|
||||
"downloadBandwidthMbps": 10000,
|
||||
"uploadBandwidthMbps": 10000,
|
||||
"downloadBandwidthMbpsMin": 9500,
|
||||
"uploadBandwidthMbpsMin": 9500,
|
||||
"classid": "0x4:0x3",
|
||||
"up_classid": "0x4:0x3",
|
||||
"parentClassID": "0x4:",
|
||||
"up_parentClassID": "0x4:",
|
||||
"classMajor": "0x4",
|
||||
"up_classMajor": "0x4",
|
||||
"classMinor": "0x3",
|
||||
"cpuNum": "0x3",
|
||||
"up_cpuNum": "0x3",
|
||||
"circuits": [
|
||||
{
|
||||
"maxDownload": 109,
|
||||
"maxUpload": 55,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "100",
|
||||
"circuitName": "1",
|
||||
"ParentNode": "Generated_PN_4",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_1",
|
||||
"deviceName": "100",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"10.30.0.204"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x4:0x4",
|
||||
"up_classid": "0x4:0x4",
|
||||
"classMajor": "0x4",
|
||||
"up_classMajor": "0x4",
|
||||
"classMinor": "0x4",
|
||||
"comment": "COMMENT"
|
||||
},
|
||||
{
|
||||
"maxDownload": 109,
|
||||
"maxUpload": 55,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "103",
|
||||
"circuitName": "5",
|
||||
"ParentNode": "Generated_PN_4",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_5",
|
||||
"deviceName": "103",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"10.30.4.128"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x4:0x5",
|
||||
"up_classid": "0x4:0x5",
|
||||
"classMajor": "0x4",
|
||||
"up_classMajor": "0x4",
|
||||
"classMinor": "0x5",
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"lastUsedClassIDCounterByCPU": {
|
||||
"1": 5,
|
||||
"2": 5,
|
||||
"3": 6,
|
||||
"4": 6
|
||||
},
|
||||
"generatedPNs": [
|
||||
"Generated_PN_1",
|
||||
"Generated_PN_2",
|
||||
"Generated_PN_3",
|
||||
"Generated_PN_4"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,390 @@
|
||||
{
|
||||
"Network": {
|
||||
"Site_1": {
|
||||
"downloadBandwidthMbps": 1000,
|
||||
"uploadBandwidthMbps": 1000,
|
||||
"downloadBandwidthMbpsMin": 950,
|
||||
"uploadBandwidthMbpsMin": 950,
|
||||
"children": {
|
||||
"AP_A": {
|
||||
"downloadBandwidthMbps": 500,
|
||||
"uploadBandwidthMbps": 500,
|
||||
"downloadBandwidthMbpsMin": 475,
|
||||
"uploadBandwidthMbpsMin": 475,
|
||||
"classid": "0x1:0x5",
|
||||
"up_classid": "0x1:0x5",
|
||||
"parentClassID": "0x1:0x3",
|
||||
"up_parentClassID": "0x1:0x3",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0x5",
|
||||
"cpuNum": "0x0",
|
||||
"up_cpuNum": "0x0"
|
||||
},
|
||||
"Site_3": {
|
||||
"downloadBandwidthMbps": 500,
|
||||
"uploadBandwidthMbps": 500,
|
||||
"downloadBandwidthMbpsMin": 475,
|
||||
"uploadBandwidthMbpsMin": 475,
|
||||
"children": {
|
||||
"PoP_5": {
|
||||
"downloadBandwidthMbps": 200,
|
||||
"uploadBandwidthMbps": 200,
|
||||
"downloadBandwidthMbpsMin": 190,
|
||||
"uploadBandwidthMbpsMin": 190,
|
||||
"children": {
|
||||
"AP_9": {
|
||||
"downloadBandwidthMbps": 120,
|
||||
"uploadBandwidthMbps": 120,
|
||||
"downloadBandwidthMbpsMin": 114,
|
||||
"uploadBandwidthMbpsMin": 114,
|
||||
"classid": "0x1:0xa",
|
||||
"up_classid": "0x1:0xa",
|
||||
"parentClassID": "0x1:0x8",
|
||||
"up_parentClassID": "0x1:0x8",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0xa",
|
||||
"cpuNum": "0x0",
|
||||
"up_cpuNum": "0x0"
|
||||
},
|
||||
"PoP_6": {
|
||||
"downloadBandwidthMbps": 60,
|
||||
"uploadBandwidthMbps": 60,
|
||||
"downloadBandwidthMbpsMin": 57,
|
||||
"uploadBandwidthMbpsMin": 57,
|
||||
"children": {
|
||||
"AP_11": {
|
||||
"downloadBandwidthMbps": 30,
|
||||
"uploadBandwidthMbps": 30,
|
||||
"downloadBandwidthMbpsMin": 28,
|
||||
"uploadBandwidthMbpsMin": 28,
|
||||
"classid": "0x1:0xd",
|
||||
"up_classid": "0x1:0xd",
|
||||
"parentClassID": "0x1:0xb",
|
||||
"up_parentClassID": "0x1:0xb",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0xd",
|
||||
"cpuNum": "0x0",
|
||||
"up_cpuNum": "0x0"
|
||||
}
|
||||
},
|
||||
"classid": "0x1:0xb",
|
||||
"up_classid": "0x1:0xb",
|
||||
"parentClassID": "0x1:0x8",
|
||||
"up_parentClassID": "0x1:0x8",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0xb",
|
||||
"cpuNum": "0x0",
|
||||
"up_cpuNum": "0x0"
|
||||
}
|
||||
},
|
||||
"classid": "0x1:0x8",
|
||||
"up_classid": "0x1:0x8",
|
||||
"parentClassID": "0x1:0x6",
|
||||
"up_parentClassID": "0x1:0x6",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0x8",
|
||||
"cpuNum": "0x0",
|
||||
"up_cpuNum": "0x0"
|
||||
}
|
||||
},
|
||||
"classid": "0x1:0x6",
|
||||
"up_classid": "0x1:0x6",
|
||||
"parentClassID": "0x1:0x3",
|
||||
"up_parentClassID": "0x1:0x3",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0x6",
|
||||
"cpuNum": "0x0",
|
||||
"up_cpuNum": "0x0"
|
||||
}
|
||||
},
|
||||
"classid": "0x1:0x3",
|
||||
"up_classid": "0x1:0x3",
|
||||
"parentClassID": "0x1:",
|
||||
"up_parentClassID": "0x1:",
|
||||
"classMajor": "0x1",
|
||||
"up_classMajor": "0x1",
|
||||
"classMinor": "0x3",
|
||||
"cpuNum": "0x0",
|
||||
"up_cpuNum": "0x0"
|
||||
},
|
||||
"Site_2": {
|
||||
"downloadBandwidthMbps": 500,
|
||||
"uploadBandwidthMbps": 500,
|
||||
"downloadBandwidthMbpsMin": 475,
|
||||
"uploadBandwidthMbpsMin": 475,
|
||||
"children": {
|
||||
"PoP_1": {
|
||||
"downloadBandwidthMbps": 200,
|
||||
"uploadBandwidthMbps": 200,
|
||||
"downloadBandwidthMbpsMin": 190,
|
||||
"uploadBandwidthMbpsMin": 190,
|
||||
"children": {
|
||||
"AP_7": {
|
||||
"downloadBandwidthMbps": 100,
|
||||
"uploadBandwidthMbps": 100,
|
||||
"downloadBandwidthMbpsMin": 95,
|
||||
"uploadBandwidthMbpsMin": 95,
|
||||
"classid": "0x2:0x8",
|
||||
"up_classid": "0x2:0x8",
|
||||
"parentClassID": "0x2:0x5",
|
||||
"up_parentClassID": "0x2:0x5",
|
||||
"classMajor": "0x2",
|
||||
"up_classMajor": "0x2",
|
||||
"classMinor": "0x8",
|
||||
"cpuNum": "0x1",
|
||||
"up_cpuNum": "0x1"
|
||||
}
|
||||
},
|
||||
"classid": "0x2:0x5",
|
||||
"up_classid": "0x2:0x5",
|
||||
"parentClassID": "0x2:0x3",
|
||||
"up_parentClassID": "0x2:0x3",
|
||||
"classMajor": "0x2",
|
||||
"up_classMajor": "0x2",
|
||||
"classMinor": "0x5",
|
||||
"cpuNum": "0x1",
|
||||
"up_cpuNum": "0x1",
|
||||
"circuits": [
|
||||
{
|
||||
"maxDownload": 200,
|
||||
"maxUpload": 200,
|
||||
"minDownload": 27,
|
||||
"minUpload": 5,
|
||||
"circuitID": "9999",
|
||||
"circuitName": "968 Circle St., Gurnee, IL 60031",
|
||||
"ParentNode": "PoP_1",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "1",
|
||||
"deviceName": "Device 1",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"100.64.1.2",
|
||||
"100.64.0.14"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": ""
|
||||
}
|
||||
],
|
||||
"classid": "0x2:0x6",
|
||||
"up_classid": "0x2:0x6",
|
||||
"classMajor": "0x2",
|
||||
"up_classMajor": "0x2",
|
||||
"classMinor": "0x6",
|
||||
"comment": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"AP_1": {
|
||||
"downloadBandwidthMbps": 150,
|
||||
"uploadBandwidthMbps": 150,
|
||||
"downloadBandwidthMbpsMin": 142,
|
||||
"uploadBandwidthMbpsMin": 142,
|
||||
"classid": "0x2:0x9",
|
||||
"up_classid": "0x2:0x9",
|
||||
"parentClassID": "0x2:0x3",
|
||||
"up_parentClassID": "0x2:0x3",
|
||||
"classMajor": "0x2",
|
||||
"up_classMajor": "0x2",
|
||||
"classMinor": "0x9",
|
||||
"cpuNum": "0x1",
|
||||
"up_cpuNum": "0x1"
|
||||
}
|
||||
},
|
||||
"classid": "0x2:0x3",
|
||||
"up_classid": "0x2:0x3",
|
||||
"parentClassID": "0x2:",
|
||||
"up_parentClassID": "0x2:",
|
||||
"classMajor": "0x2",
|
||||
"up_classMajor": "0x2",
|
||||
"classMinor": "0x3",
|
||||
"cpuNum": "0x1",
|
||||
"up_cpuNum": "0x1"
|
||||
},
|
||||
"Generated_PN_1": {
|
||||
"downloadBandwidthMbps": 10000,
|
||||
"uploadBandwidthMbps": 10000,
|
||||
"downloadBandwidthMbpsMin": 9500,
|
||||
"uploadBandwidthMbpsMin": 9500,
|
||||
"classid": "0x3:0x3",
|
||||
"up_classid": "0x3:0x3",
|
||||
"parentClassID": "0x3:",
|
||||
"up_parentClassID": "0x3:",
|
||||
"classMajor": "0x3",
|
||||
"up_classMajor": "0x3",
|
||||
"classMinor": "0x3",
|
||||
"cpuNum": "0x2",
|
||||
"up_cpuNum": "0x2",
|
||||
"circuits": [
|
||||
{
|
||||
"maxDownload": 669,
|
||||
"maxUpload": 222,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "104",
|
||||
"circuitName": "7",
|
||||
"ParentNode": "Generated_PN_1",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_7",
|
||||
"deviceName": "104",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"10.30.3.49"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x3:0x4",
|
||||
"up_classid": "0x3:0x4",
|
||||
"classMajor": "0x3",
|
||||
"up_classMajor": "0x3",
|
||||
"classMinor": "0x4",
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Generated_PN_2": {
|
||||
"downloadBandwidthMbps": 10000,
|
||||
"uploadBandwidthMbps": 10000,
|
||||
"downloadBandwidthMbpsMin": 9500,
|
||||
"uploadBandwidthMbpsMin": 9500,
|
||||
"classid": "0x4:0x3",
|
||||
"up_classid": "0x4:0x3",
|
||||
"parentClassID": "0x4:",
|
||||
"up_parentClassID": "0x4:",
|
||||
"classMajor": "0x4",
|
||||
"up_classMajor": "0x4",
|
||||
"classMinor": "0x3",
|
||||
"cpuNum": "0x3",
|
||||
"up_cpuNum": "0x3",
|
||||
"circuits": [
|
||||
{
|
||||
"maxDownload": 109,
|
||||
"maxUpload": 55,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "100",
|
||||
"circuitName": "1",
|
||||
"ParentNode": "Generated_PN_2",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_1",
|
||||
"deviceName": "100",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"10.30.0.204"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x4:0x4",
|
||||
"up_classid": "0x4:0x4",
|
||||
"classMajor": "0x4",
|
||||
"up_classMajor": "0x4",
|
||||
"classMinor": "0x4",
|
||||
"comment": "COMMENT"
|
||||
},
|
||||
{
|
||||
"maxDownload": 11,
|
||||
"maxUpload": 2,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "101",
|
||||
"circuitName": "3",
|
||||
"ParentNode": "Generated_PN_2",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_3",
|
||||
"deviceName": "101",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"10.19.7.19"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x4:0x5",
|
||||
"up_classid": "0x4:0x5",
|
||||
"classMajor": "0x4",
|
||||
"up_classMajor": "0x4",
|
||||
"classMinor": "0x5",
|
||||
"comment": "COMMENT"
|
||||
},
|
||||
{
|
||||
"maxDownload": 111,
|
||||
"maxUpload": 111,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "102",
|
||||
"circuitName": "4",
|
||||
"ParentNode": "Generated_PN_2",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_4",
|
||||
"deviceName": "102",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"5.63.189.26"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x4:0x6",
|
||||
"up_classid": "0x4:0x6",
|
||||
"classMajor": "0x4",
|
||||
"up_classMajor": "0x4",
|
||||
"classMinor": "0x6",
|
||||
"comment": "COMMENT"
|
||||
},
|
||||
{
|
||||
"maxDownload": 109,
|
||||
"maxUpload": 55,
|
||||
"minDownload": 2,
|
||||
"minUpload": 2,
|
||||
"circuitID": "103",
|
||||
"circuitName": "5",
|
||||
"ParentNode": "Generated_PN_2",
|
||||
"devices": [
|
||||
{
|
||||
"deviceID": "KOMP_5",
|
||||
"deviceName": "103",
|
||||
"mac": "",
|
||||
"ipv4s": [
|
||||
"10.30.4.128"
|
||||
],
|
||||
"ipv6s": [],
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
],
|
||||
"classid": "0x4:0x7",
|
||||
"up_classid": "0x4:0x7",
|
||||
"classMajor": "0x4",
|
||||
"up_classMajor": "0x4",
|
||||
"classMinor": "0x7",
|
||||
"comment": "COMMENT"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"lastUsedClassIDCounterByCPU": {
|
||||
"1": 14,
|
||||
"2": 10,
|
||||
"3": 5,
|
||||
"4": 8
|
||||
},
|
||||
"generatedPNs": [
|
||||
"Generated_PN_1",
|
||||
"Generated_PN_2"
|
||||
]
|
||||
}
|
||||
@@ -5,7 +5,7 @@ use serde_json::Value;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
pub struct QueueNetwork {
|
||||
cpu_node: Vec<QueueNode>,
|
||||
pub(crate) cpu_node: Vec<QueueNode>,
|
||||
}
|
||||
|
||||
impl QueueNetwork {
|
||||
|
||||
@@ -101,6 +101,7 @@ impl QueueNode {
|
||||
}
|
||||
}
|
||||
}
|
||||
"children" => {} // Ignore for now
|
||||
_ => log::error!("I don't know how to parse key: [{key}]"),
|
||||
}
|
||||
}
|
||||
@@ -127,3 +128,43 @@ impl QueueNode {
|
||||
result
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
const EXAMPLE_QUEUE_STRUCTURE_WITH_CHILDREN: &str = include_str!("./example_queue_with_children.test.json");
|
||||
const EXAMPLE_QUEUE_STRUCTURE_NO_CHILDREN: &str = include_str!("./example_queue_flat.test.json");
|
||||
|
||||
fn try_load_queue_structure(raw_string: &str) {
|
||||
let mut result = super::super::QueueNetwork {
|
||||
cpu_node: Vec::new(),
|
||||
};
|
||||
let json: Value = serde_json::from_str(&raw_string).unwrap();
|
||||
if let Value::Object(map) = &json {
|
||||
if let Some(network) = map.get("Network") {
|
||||
if let Value::Object(map) = network {
|
||||
for (key, value) in map.iter() {
|
||||
result.cpu_node.push(QueueNode::from_json(&key, value).unwrap());
|
||||
}
|
||||
} else {
|
||||
panic!("Unable to parse network object structure");
|
||||
}
|
||||
} else {
|
||||
panic!("Network entry not found");
|
||||
}
|
||||
} else {
|
||||
panic!("Unable to parse queueStructure.json");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn load_queue_structure_no_children() {
|
||||
try_load_queue_structure(EXAMPLE_QUEUE_STRUCTURE_NO_CHILDREN);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn load_queue_structure_with_children() {
|
||||
try_load_queue_structure(EXAMPLE_QUEUE_STRUCTURE_WITH_CHILDREN);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user