From a7895a17bf9d2feadd3b9584d999c3322211a5e7 Mon Sep 17 00:00:00 2001 From: Lisa Nguyen Date: Wed, 1 Apr 2015 00:03:06 +0100 Subject: [PATCH] common/linux/device.py: Create binaries_directory path if it doesn't exist Some Linux devices may run on minimal root file systems (e.g. buildroot) where /usr/local/bin path doesn't exist. Create the binaries_directory if it doesn't exist instead of letting WA quit and return errors such as: INFO Runner: Skipping the rest of the iterations for this spec. ERROR Runner: Error while running memcpy ERROR Runner: CalledProcessError("Command 'sshpass -p '' /usr/bin/scp -r /usr/local/lib/python2.7/dist-packages/ wlauto-2.3.0-py2.7.egg/wlauto/workloads/memcpy /memcpy root@192.168.x.x:/usr/local/bin/memcpy' returned non-zero exit status 1") ERROR Runner: Got: ERROR Runner: ERROR Runner: scp: /usr/local/bin/memcpy: No such file or directory Signed-off-by: Lisa Nguyen --- wlauto/common/linux/device.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/wlauto/common/linux/device.py b/wlauto/common/linux/device.py index ef10c406..4de66322 100644 --- a/wlauto/common/linux/device.py +++ b/wlauto/common/linux/device.py @@ -804,7 +804,9 @@ class LinuxDevice(BaseLinuxDevice): def initialize(self, context, *args, **kwargs): self.execute('mkdir -p {}'.format(self.local_binaries_directory)) + self.execute('mkdir -p {}'.format(self.binaries_directory)) self.execute('export PATH={}:$PATH'.format(self.local_binaries_directory)) + self.execute('export PATH={}:$PATH'.format(self.binaries_directory)) super(LinuxDevice, self).initialize(context, *args, **kwargs) # Power control @@ -938,8 +940,12 @@ class LinuxDevice(BaseLinuxDevice): install_executable = install # compatibility def uninstall(self, name): - path = self.path.join(self.local_binaries_directory, name) - self.delete_file(path) + if self.is_rooted: + path = self.path.join(self.binaries_directory, name) + self.delete_file(path, as_root=True) + else: + path = self.path.join(self.local_binaries_directory, name) + self.delete_file(path) uninstall_executable = uninstall # compatibility