Testing wireless network configuration generation.

-- Testcase --
{%
	let real_include = include;

	include("./cfg/ucentral.uc", {
		TRACE_CALLS: "stderr",

		/* wrap include() to fixup the include paths */
		include: function(path, scope) {
			path = replace(path, "/usr/share/ucentral/", "../cfg/");

			/* make path absolute */
			if (index(path, "/") != 0) {
				try {
					die();
				} catch(e) {
					path = replace(e.stacktrace[1].filename, /\/[^\/]+$/, '') + '/' + path;
				};
			}

			return real_include(path, scope);
		}
	})
%}
-- End --

-- Environment --
{
	"capab": {
		"network" : {
			"lan" : {
				"ifname" : "lan1 lan2 lan3 lan4",
				"macaddr" : "00:11:22:f5:37:d3",
				"protocol" : "static"
			},
			"wan" : {
				"ifname" : "wan",
				"macaddr" : "00:11:22:f5:37:d2",
				"protocol" : "dhcp"
			}
		},
		"wifi" : {
			"platform/18000000.wmac" : {
				"band" : [
					"2"
				],
				"channels" : [
					1,
					2,
					3,
					4,
					5,
					6,
					7,
					8,
					9,
					10,
					11,
					12,
					13,
					14
				],
				"ht_capa" : 511,
				"htmode" : [
					"HT20",
					"HT40"
				],
				"rx_ant" : 15,
				"tx_ant" : 15
			}
		}
	},
	"cfg": {
		"phy" : [
			{
				"band" : "2",
				"cfg" : {
					"beacon_int" : 100,
					"chanbw" : 20,
					"channel" : 6,
					"country" : "DE",
					"disabled" : 0,
					"htmode" : "HT40",
					"hwmode" : "11g",
					"txpower" : 30
				}
			}
		],
		"ssid" : [
			{
				"band" : [
					"2"
				],
				"cfg" : {
					"encryption" : "psk2",
					"ft_over_ds" : 1,
					"ft_psk_generate_local" : 1,
					"ieee80211k" : 1,
					"ieee80211r" : 1,
					"ieee80211v" : 1,
					"isolate" : 1,
					"key" : "12345678",
					"mobility_domain" : "4f57",
					"mode" : "ap",
					"network" : "guest",
					"ssid" : "uCentral.Guest",
					"multi_psk": [
						{
							"key": "aaaaaaaa",
							"vid": 100
						},
						{
							"key": "bbbbbbbb",
							"mac": "00:11:22:33:44:55"
						},
						{
							"key": "cccccccc"
						}
					],
					"multi_vlan": [
						{
							"network": "guest",
							"vid": 100
						},
						{
							"network": "wan",
							"vid": "101"
						}
					]
				}
			}
		]
	}
}
-- End --

-- File fs/stat~_usr_share_ucentral_cfg_phy_uc.json --
{ "type": "file" }
-- End --

-- Expect stderr --
[call] fs.stat path </usr/share/ucentral/cfg_phy.uc>
-- End --

-- Expect stdout --
set wireless.radio0='wifi-device'
set wireless.radio0.htmode='HT40'
set wireless.radio0.channel='6'
set wireless.radio0.disabled='0'
set wireless.radio0.country='DE'
set wireless.radio0.beacon_int='100'
set wireless.radio0.txpower='30'
set wireless.radio0.chanbw='20'
set wireless.radio0_guest='wifi-iface'
set wireless.radio0_guest.device='radio0'
set wireless.radio0_guest.ssid='uCentral.Guest'
set wireless.radio0_guest.network='guest'
set wireless.radio0_guest.mode='ap'
set wireless.radio0_guest.ieee80211r='1'
set wireless.radio0_guest.ieee80211k='1'
set wireless.radio0_guest.ieee80211v='1'
set wireless.radio0_guest.isolate='1'
set wireless.radio0_guest.ft_over_ds='1'
set wireless.radio0_guest.ft_psk_generate_local='1'
set wireless.radio0_guest.mobility_domain='4f57'
set wireless.radio0_guest.encryption='psk2'
set wireless.radio0_guest.key='12345678'
set wireless.station0='wifi-station'
set wireless.station0.iface='radio0_guest'
set wireless.station0.vid='100'
set wireless.station0.key='aaaaaaaa'
set wireless.station1='wifi-station'
set wireless.station1.iface='radio0_guest'
set wireless.station1.mac='00:11:22:33:44:55'
set wireless.station1.key='bbbbbbbb'
set wireless.station2='wifi-station'
set wireless.station2.iface='radio0_guest'
set wireless.station2.key='cccccccc'
set wireless.vlan0='wifi-vlan'
set wireless.vlan0.iface='radio0_guest'
set wireless.vlan0.name='guest'
set wireless.vlan0.network='guest'
set wireless.vlan0.vid='100'
set wireless.vlan1='wifi-vlan'
set wireless.vlan1.iface='radio0_guest'
set wireless.vlan1.name='wan'
set wireless.vlan1.network='wan'
set wireless.vlan1.vid='101'
-- End --
