While unknown sections do lead to an error in strict mode, in non-strict mode the line is just skipped, meaning that key-value pairs from the unknown section will override the key-value pairs from the previous section.
Fixed by the next commit. Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- .../unknown-sections.conf | 44 ++++++++++++++ .../unknown-sections.conf.strict.error | 1 + test/parse-config-input/unknown-sections.conf | 57 +++++++++++++++++++ test/run_parse_config_tests.pl | 2 +- 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 test/parse-config-expected/unknown-sections.conf create mode 100644 test/parse-config-expected/unknown-sections.conf.strict.error create mode 100644 test/parse-config-input/unknown-sections.conf diff --git a/test/parse-config-expected/unknown-sections.conf b/test/parse-config-expected/unknown-sections.conf new file mode 100644 index 00000000..08f1a3e2 --- /dev/null +++ b/test/parse-config-expected/unknown-sections.conf @@ -0,0 +1,44 @@ +boot: order=scsi0 +cores: 2 +cpu: x86-64-v2-AES +ide2: lvm:vm-120-cloudinit,media=cdrom +ipconfig0: ip6=dhcp +memory: 4096 +meta: creation-qemu=9.0.2,ctime=1725975013 +name: foo +net0: vmxnet3=BC:24:11:2C:69:EC,bridge=vnet0,firewall=1 +numa: 0 +ostype: l26 +parent: foo +scsi0: nfs:120/vm-120-disk-0.qcow2,iothread=1,size=4G +scsihw: virtio-scsi-single +smbios1: uuid=b3247ab1-1fe6-428e-965b-08a1b64a8746 +sockets: 1 +unused0: rbd:vm-120-disk-0 +vmgenid: 7079e97c-50e3-4079-afe7-23e67566b946 + +[PENDING] +bios: seabios + +[special:cloudinit] +ipconfig0: ip=dhcp,ip6=dhcp +name: bar + +[foo] +boot: order=scsi0 +cores: 2 +cpu: x86-64-v2-AES +ide2: lvm:vm-120-cloudinit,media=cdrom +ipconfig0: ip=dhcp,ip6=dhcp +memory: 4096 +meta: creation-qemu=9.0.2,ctime=1725975013 +name: baz +net0: vmxnet3=BC:24:11:2C:69:EC,bridge=vnet0,firewall=1 +numa: 0 +ostype: l26 +scsi0: nfs:120/vm-120-disk-0.qcow2,iothread=1,size=4G +scsihw: virtio-scsi-single +smbios1: uuid=b3247ab1-1fe6-428e-965b-08a1b64a8746 +snaptime: 1737548747 +sockets: 1 +vmgenid: 7079e97c-50e3-4079-afe7-23e67566b946 diff --git a/test/parse-config-expected/unknown-sections.conf.strict.error b/test/parse-config-expected/unknown-sections.conf.strict.error new file mode 100644 index 00000000..e7004dc9 --- /dev/null +++ b/test/parse-config-expected/unknown-sections.conf.strict.error @@ -0,0 +1 @@ +vm 8006 - unable to parse config: [special:unknown123] diff --git a/test/parse-config-input/unknown-sections.conf b/test/parse-config-input/unknown-sections.conf new file mode 100644 index 00000000..0dcd5951 --- /dev/null +++ b/test/parse-config-input/unknown-sections.conf @@ -0,0 +1,57 @@ +boot: order=scsi0 +cores: 2 +cpu: x86-64-v2-AES +ide2: lvm:vm-120-cloudinit,media=cdrom +ipconfig0: ip6=dhcp +memory: 4096 +meta: creation-qemu=9.0.2,ctime=1725975013 +name: deb1223 +net0: vmxnet3=BC:24:11:2C:69:EC,bridge=vnet0,firewall=1 +numa: 0 +ostype: l26 +parent: foo +scsi0: nfs:120/vm-120-disk-0.qcow2,iothread=1,size=4G +scsihw: virtio-scsi-single +smbios1: uuid=b3247ab1-1fe6-428e-965b-08a1b64a8746 +sockets: 1 +unused0: rbd:vm-120-disk-0 +vmgenid: 7079e97c-50e3-4079-afe7-23e67566b946 + +[special:unknown123] +name: foo + +[PENDING] +bios: ovmf + +[special:unknown124] +bios: seabios + +[special:cloudinit] +ipconfig0: ip=dhcp,ip6=dhcp +name: deb122 + +[special:unknown125] +name: bar + +[foo] +boot: order=scsi0 +cores: 2 +cpu: x86-64-v2-AES +ide2: lvm:vm-120-cloudinit,media=cdrom +ipconfig0: ip=dhcp,ip6=dhcp +memory: 4096 +meta: creation-qemu=9.0.2,ctime=1725975013 +name: deb1223 +net0: vmxnet3=BC:24:11:2C:69:EC,bridge=vnet0,firewall=1 +numa: 0 +ostype: l26 +scsi0: nfs:120/vm-120-disk-0.qcow2,iothread=1,size=4G +scsihw: virtio-scsi-single +smbios1: uuid=b3247ab1-1fe6-428e-965b-08a1b64a8746 +snaptime: 1737548747 +sockets: 1 +vmgenid: 7079e97c-50e3-4079-afe7-23e67566b946 + +[:3] +name: baz +cat: nya~ diff --git a/test/run_parse_config_tests.pl b/test/run_parse_config_tests.pl index 51f87ae5..b1a9a0c1 100755 --- a/test/run_parse_config_tests.pl +++ b/test/run_parse_config_tests.pl @@ -26,7 +26,7 @@ my $OUTPUT_DIR = './parse-config-output'; my $EXPECTED_DIR = './parse-config-expected'; # NOTE update when you add/remove tests -plan tests => 2 * 7; +plan tests => 2 * 8; sub run_tests { my ($strict) = @_; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel