How to use update_spec_line method in autotest

Best Python code snippet using autotest_python Github


Full Screen

...696 self.configs.append(config_option)697 def config(self, *args, **kwargs):698 for config_option in args:699 self.consume_one_config(config_option)700 def update_spec_line(self, line, outspec, tag):701 if line.startswith('# % define buildid'):702 outspec.write('%%define buildid .%s\n' % tag)703 return704 if len(self.patches) > 0:705 if line.startswith('Patch999999'):706 for index, (spec, dest, md5sum) in enumerate(self.patches):707 outspec.write('Patch%d: %s\n' %708 (index,709 os.path.relpath(dest, self.SOURCES_dir)))710 if line.startswith('ApplyOptionalPatch linux-kernel-test.patch'):711 for (spec, dest, md5sum) in self.patches:712 outspec.write('ApplyPatch %s\n' %713 os.path.relpath(dest, self.SOURCES_dir))714 if len(self.configs) > 0:715 if line.startswith('%define listnewconfig_fail'):716 outspec.write('%define listnewconfig_fail 0\n')717 return718 outspec.write(line)719 def update_spec(self, tag):720 utils.system('cp %s %s' % (self.spec, self.spec + '.bak'))721 with open(self.spec + '.bak', 'r') as inspec:722 with open(self.spec, 'w+') as outspec:723 for line in inspec:724 self.update_spec_line(line, outspec, tag)725 def prep(self, tag='autotest'):726 self.setup_source()727 self.update_spec(tag)728 utils.system('rpmbuild -bp %s' % self.spec)729 def build(self, tag='autotest'):730 self.setup_source()731 self.update_spec(tag)732 utils.system('rpmbuild -bb %s' % self.spec)733 dest = os.path.join(self.results_dir, "RPMs")734 shutil.copytree(self.RPMS_dir, dest)735 rpms = []736 for root, dirs, files in os.walk(self.RPMS_dir):737 for name in files:738 if is not None:739 rpms.append(os.path.join(root, name))740 self.binrpms = rpms741 self.built = True742 def install(self, tag='autotest'):743 # install resulting rpm on system744 if not self.built:745 r = rpm_kernel_vendor(self.job, self.binrpms, self.subdir)747 r.install(tag=tag)748 def boot(self, args=''):749 # boot resulting rpm on system750 if not self.built:751 r = rpm_kernel_vendor(self.job, self.binrpms, self.subdir)753 r.boot(args=args)754class rpm_kernel_suse(rpm_kernel):755 """ Class for installing openSUSE/SLE rpm kernel package756 """757 kernel_string = '/boot/vmlinux'758 def install(self):759 # do not set the new kernel as the default one760 os.environ['PBL_AUTOTEST'] = '1'761 rpm_kernel.install(self, 'dummy')762 self.installed_as = self.job.bootloader.get_title_for_kernel(self.image)763 if not self.installed_as:764 errmsg = "cannot find installed kernel in bootloader configuration"765 raise error.TestError(errmsg)766 def add_to_bootloader(self, args=''):767 """ Set parameters of this kernel in bootloader768 """769 # pull the base argument set from the job config770 baseargs = self.job.config_get('boot.default_args')771 if baseargs:772 args = baseargs + ' ' + args773 self.job.bootloader.add_args(self.installed_as, args)774class srpm_kernel_suse(srpm_kernel):775 prefix = '/usr/src/packages'776 def __init__(self, job, rpm_package, subdir):777 # download and install src.rpm778 super(srpm_kernel_suse, self).__init__(job, rpm_package, subdir)779 utils.system('rm -rf ' + self.cfg_dir)780 os.mkdir(self.cfg_dir)781 os.mkdir(os.path.join(self.cfg_dir, utils.get_current_kernel_arch()))782 def finish_init(self):783 self.src_dir = os.path.join(self.SOURCES_dir, 'patches.addon')784 self.cfg_dir = os.path.join(self.SOURCES_dir, 'config.addon')785 d = distro.detect()786 if d.version == '11':787 self.spec = os.path.join(self.SPECS_dir, 'kernel-ppc64.spec')788 self.config_file = os.path.join(self.cfg_dir, utils.get_current_kernel_arch(), utils.get_current_kernel_arch())789 # sles11 needs both kernel and kernel-base790 self.binrpm_pattern = re.compile(r'kernel-%s-(base|[0-9])' % utils.get_current_kernel_arch())791 if d.version == '12':792 self.spec = os.path.join(self.SPECS_dir, 'kernel-default.spec')793 self.config_file = os.path.join(self.cfg_dir, utils.get_current_kernel_arch(), 'default')794 self.binrpm_pattern = re.compile(r'kernel-default-[0-9]')795 def setup_source(self):796 # setup tarball797 if len(self.patches) > 0:798 # need to ensure the tarball's contents are relative to SOURCES799 utils.system('tar jCcf %s %s.tar.bz2 %s' % (self.SOURCES_dir,800 self.src_dir,801 os.path.basename(self.src_dir)))802 # append to series file803 with open(os.path.join(self.SOURCES_dir, 'series.conf'), 'a') as series:804 for (spec, local, md5sum) in self.patches:805 series.write("%s\n" % os.path.relpath(local, self.SOURCES_dir))806 if len(self.configs) > 0:807 with open(self.config_file, 'w+') as cfg:808 for config in self.configs:809 cfg.write("%s\n" % config)810 # need to ensure the tarball's contents are relative to SOURCES811 utils.system('tar jCcf %s %s.tar.bz2 %s' % (self.SOURCES_dir,812 self.cfg_dir,813 os.path.basename(self.cfg_dir)))814 # if we are mucking with the new CONFIG symbols, the build will815 # fail if any dependencies get pulled in816 utils.system('touch /usr/src/packages/SOURCES/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS')817 # generate spec file818 cwd = os.getcwd()819 os.chdir(self.SOURCES_dir)820 utils.system('./mkspec')821 os.chdir(cwd)822 # copy spec file823 d = distro.detect()824 if d.version == '11':825 utils.system('cp %s %s' % (826 os.path.join(self.SOURCES_dir, 'kernel-ppc64.spec'),827 self.spec))828 else:829 utils.system('cp %s %s' % (830 os.path.join(self.SOURCES_dir, 'kernel-default.spec'),831 self.spec))832 def update_spec_line(self, line, outspec, tag):833 if line.startswith('Release'):834 outspec.write('Release: %s\n' % tag)835 return836 outspec.write(line)837def rpm_kernel_vendor(job, rpm_package, subdir):838 d = distro.detect()839 if == "sles":840 return rpm_kernel_suse(job, rpm_package, subdir)841 else:842 return rpm_kernel(job, rpm_package, subdir)843def srpm_kernel_vendor(job, rpm_package, subdir):844 d = distro.detect()845 if == "sles":846 return srpm_kernel_suse(job, rpm_package, subdir)...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:


You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run autotest automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?