From c40af8b3fec1b840776ca36d64b1857ed2bdd95b Mon Sep 17 00:00:00 2001 From: Ben Howard Date: Wed, 25 Mar 2015 11:04:05 -0600 Subject: Import patches-unapplied version 2.0.12-0ubuntu1 to ubuntu/vivid-proposed Imported using git-ubuntu import. Changelog parent: f9cd6b27fad4d9fdf557138966f2d34cae234edb New changelog entries: * New upstream release. * Added debian/watch for easier maintenance. * Fix regression of missing dataloss warning by adding systemd unit file. --- tests/env.py | 2 +- tests/part-gpt.py | 31 +++++++++++++++++ tests/test_logger.py | 35 +++++++++++++++++++ tests/test_shared_config.py | 85 +++++++++++++++++++++++++++++++++++++++++++++ tests/upload_status_blob.py | 37 ++++++++++++++++++++ 5 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 tests/part-gpt.py create mode 100644 tests/test_logger.py create mode 100644 tests/test_shared_config.py create mode 100644 tests/upload_status_blob.py (limited to 'tests') diff --git a/tests/env.py b/tests/env.py index ea33c89..4e9e052 100644 --- a/tests/env.py +++ b/tests/env.py @@ -19,5 +19,5 @@ import os projet_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) waagent = imp.load_source('waagent', os.path.join(projet_root, 'waagent')) -waagent.LoggerInit('/tmp/test.log','/dev/stdout') +waagent.LoggerInit('/dev/stdout', '/dev/null') diff --git a/tests/part-gpt.py b/tests/part-gpt.py new file mode 100644 index 0000000..373e1c6 --- /dev/null +++ b/tests/part-gpt.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# +# Copyright 2014 Microsoft Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Implements parts of RFC 2131, 1541, 1497 and +# http://msdn.microsoft.com/en-us/library/cc227282%28PROT.10%29.aspx +# http://msdn.microsoft.com/en-us/library/cc227259%28PROT.13%29.aspx +# + +import subprocess + +if __name__ == '__main__': + subprocess.call(['umount', '/mnt/resource']) + subprocess.call(['umount', '/mnt']) + subprocess.call(['parted', '/dev/sdb', 'print']) + subprocess.call(['parted', '/dev/sdb', 'rm', '1']) + subprocess.call(['parted', '/dev/sdb', 'mklabel', 'gpt']) + subprocess.call(['parted', '/dev/sdb', 'mkpart', 'primary', '0%', '50%']) + subprocess.call(['parted', '/dev/sdb', 'mkpart', 'primary', '50%', '100%']) diff --git a/tests/test_logger.py b/tests/test_logger.py new file mode 100644 index 0000000..d188277 --- /dev/null +++ b/tests/test_logger.py @@ -0,0 +1,35 @@ +# Copyright 2014 Microsoft Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import unittest +from env import waagent + + +class TestWAAgentLogger(unittest.TestCase): + + def test_log_to_non_exists_dev(self): + logger = waagent.Logger('/tmp/testlog', '/dev/nonexists') + logger.Log("something") + + def test_log_to_non_exists_file(self): + logger = waagent.Logger('/tmp/nonexists/testlog', '/tmp/testconsole') + logger.Log("something") + + def test_log_unicode(self): + logger = waagent.Logger('/tmp/testlog', '/tmp/testconsole') + logger.Log(u"anything\u6211\u7231\u5201\u831C".encode("utf-8")) + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_shared_config.py b/tests/test_shared_config.py new file mode 100644 index 0000000..75220b8 --- /dev/null +++ b/tests/test_shared_config.py @@ -0,0 +1,85 @@ +# Copyright 2014 Microsoft Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import unittest +from env import waagent + + +class TestSharedConfig(unittest.TestCase): + + def test_parse_shared_config(self): + conf = waagent.SharedConfig().Parse(SharedConfigText) + self.assertNotEquals(None, conf) + self.assertNotEquals(None, conf.RdmaMacAddress) + self.assertNotEquals(None, conf.RdmaIPv4Address) + return conf + + def test_config_rdma(self): + waagent.LoggerInit("/dev/stdout", "/dev/null", verbose=True) + testDev = "/tmp/hvnd_rdma" + waagent.SetFileContents(testDev, "") + conf = self.test_parse_shared_config() + conf.ConfigRdma(dev=testDev) + rdmaConf = waagent.GetFileContents(testDev) + self.assertNotEquals(None, rdmaConf) + self.assertNotEquals("", rdmaConf) + +SharedConfigText="""\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +""" + +if __name__ == '__main__': + unittest.main() diff --git a/tests/upload_status_blob.py b/tests/upload_status_blob.py new file mode 100644 index 0000000..af8c580 --- /dev/null +++ b/tests/upload_status_blob.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python +# +# Copyright 2014 Microsoft Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Implements parts of RFC 2131, 1541, 1497 and +# http://msdn.microsoft.com/en-us/library/cc227282%28PROT.10%29.aspx +# http://msdn.microsoft.com/en-us/library/cc227259%28PROT.13%29.aspx +# + +import os +from env import waagent +""" +To run the test, you need to create a file under the same directory called: + status_blob_url.py +and defined the following 2 variables like: + blockBlobUrl="" + pageBlobUrl="" +""" +from status_blob_url import blockBlobUrl, pageBlobUrl + +if __name__ == '__main__': + waagent.LoggerInit('/dev/stdout', '/dev/null', verbose=True) + status = "a" * 512 + waagent.UploadStatusBlob(blockBlobUrl, status.encode("utf-8")) + waagent.UploadStatusBlob(pageBlobUrl, status.encode("utf-8")) -- cgit v1.2.3