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

Reply via email to