I tried using last picshell from SVN (rev. 78): - __init__.py is missing in picshell/console directory - a new JALsPy dependency has appeared: "No module named JALsPy_globals", from file: picshell/monitors/DeviceStateMonitors.py . I guess this is JALsPy from Stef's ? Where can I download it ?
Cheers, Seb -- Sébastien Lelong http://www.sirloon.net http://sirbot.org 2009/9/29 Sebastien Lelong <[email protected]> > OK, let's keep SVN as is, I'll retrieve previous version, including > PICShell modifications. I may add an SVN externals to retrieve PICShell > source: when updating jallib, it checks updates in picshell SVN too. > pichsell is then integrated and linked to jallib automatically. It can be > handy. What do you think ? > > Seb > > > > > > >> Hi Seb, >> Think it is OK to move to the new picshell, I wasn't aware that the >> daily build process was depending on it, so therefore I did an undo of >> the change set so at least buildbot can do its job >> So the next step might be that you grab the latest picshell form SVN, >> and try to run it with the modified jallib.py script, please let me >> know if there are issues. >> Albert >> >> >> On 29 sep, 11:30, Sebastien Lelong <[email protected]> wrote: >> > If you think it's ok, we can actually migrate to new PICShell version... >> > >> > Seb >> > >> > >> > >> > > Revision: 1361 >> > > Author: [email protected] >> > > Date: Tue Sep 29 01:44:14 2009 >> > > Log: undo unittest changeset >> > >http://code.google.com/p/jallib/source/detail?r=1361 >> > >> > > Deleted: >> > > /trunk/test/unittest/18f14k50_adc.jalt >> > > Modified: >> > > /trunk/tools/jallib.py >> > >> > > ======================================= >> > > --- /trunk/test/unittest/18f14k50_adc.jalt Mon Sep 28 16:41:33 >> 2009 >> > > +++ /dev/null >> > > @@ -1,137 +0,0 @@ >> > > --- Title: unittest to check ADC libs for 18f14k50 >> > > --- Author: Albert Faber, Copyright (c) 2009, all rights reserved. >> > > --- Adapted-by: >> > > --- Compiler: >=2.4l >> > > --- >> > > --- This file is part of jallib (http://jallib.googlecode.com) >> > > --- Released under the BSD license >> > > (http://www.opensource.org/licenses/bsd-license.php) >> > > --- >> > > --- Description: this describes multiple unittests (a testcase), to >> test >> > > the >> > > --- many different combination while setting up ADC. >> > > --- >> > > --- Notes: see jallib wiki page about unit testing to learn how to use >> this >> > > file >> > > --- >> > > - >> > > -;@jallib section pic >> > > -include 18f14k50 ;@no_debug >> > > -pragma target OSC HS >> > > -pragma target clock 20_000_000 >> > > -pragma target WDT disabled >> > > -enable_digital_io() >> > > --- force analog pin/port to be output, so we can check they are >> > > --- automagically set as input when configured (else it can be >> optimized >> > > away) >> > > -porta_direction = all_output >> > > -portb_direction = all_output >> > > -portc_direction = all_output >> > > - >> > > - >> > > -;@jallib section self_test >> > > -include unittest >> > > -var byte a = 120 >> > > -test_byte(a) ;@assertEquals 120 test_test >> > > - >> > > - >> > > -;@jallib testcase test_all_analog_pins >> > > -;@jallib use pic >> > > -;@jallib use self_test >> > > -const byte ADC_NVREF = 0 >> > > -const bit ADC_HIGH_RESOLUTION = false >> > > -const word ADC_RSOURCE = 2_500 >> > > -porta_direction = all_output >> > > -portb_direction = all_output >> > > -portc_direction = all_output >> > > - >> > > -include adc >> > > -adc_init() >> > > - >> > > -set_analog_pin(0) >> > > --- check pin on PORTA configured as inputs (not supported) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 0 test_porta_pin_an0_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an0_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 0 test_portb_pin_an0_input >> > > - >> > > - >> > > -set_analog_pin(1) >> > > --- check pin on PORTA configured as inputs (not supported) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 0 test_porta_pin_an01_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an01_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 0 test_portb_pin_an01_input >> > > - >> > > -set_analog_pin(2) >> > > --- check pin on PORTA configured as inputs (not supported) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 0 test_porta_pin_an012_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an012_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 0 test_portb_pin_an012_input >> > > - >> > > - >> > > -set_analog_pin(3) >> > > --- check pin on PORTA configured as inputs (0b_0001_0000 => RA{4}) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an0123_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an0123_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 0 test_portb_pin_an0123_input >> > > - >> > > -set_analog_pin(4) >> > > --- check pin on PORTC configured as inputs (0b_0000_0001 => RC{0} ) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an01234_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an01234_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 1 test_portb_pin_an01234_input >> > > - >> > > -set_analog_pin(5) >> > > --- check pin on PORTC configured as inputs (0b_0000_0011 => >> RC{1},RC{0} ) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an012345_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an012345_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 3 test_portb_pin_an012345_input >> > > - >> > > -set_analog_pin(6) >> > > --- check pin on PORTC configured as inputs (0b_0000_0111 => >> > > RC{2},RC{1},RC{0} ) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an0123456_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an0123456_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 7 test_portb_pin_an0123456_input >> > > - >> > > -set_analog_pin(7) >> > > --- check pin on PORTC configured as inputs (0b_0000_1111 => >> > > RC{3},RC{2},RC{1},RC{0} ) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an01234567_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an01234567_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 15 test_portb_pin_an01234567_input >> > > - >> > > -set_analog_pin(8) >> > > --- check pin on PORTC configured as inputs (0b_0100_1111 => >> > > RC(6),RC{3},RC{2},RC{1},RC{0} ) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an012345678_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an012345678_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 79 test_portb_pin_an012345678_input >> > > - >> > > -set_analog_pin(9) >> > > --- check pin on PORTC configured as inputs (0b_1100_1111 => >> > > RC{7},RC{6},RC{3},RC{2},RC{1},RC{0} ) >> > > -asm nop >> > > -test_byte(TRISA) ;@assertEquals 32 test_porta_pin_an0123456789_input >> > > -asm nop >> > > -test_byte(TRISB) ;@assertEquals 0 test_portb_pin_an0123456789_input >> > > -asm nop >> > > -test_byte(TRISC) ;@assertEquals 207 >> test_portb_pin_an0123456789_input >> > > ======================================= >> > > --- /trunk/tools/jallib.py Mon Sep 28 15:23:55 2009 >> > > +++ /trunk/tools/jallib.py Tue Sep 29 01:44:14 2009 >> > > @@ -47,6 +47,12 @@ >> > > except ImportError: >> > > has_subprocess = False >> > >> > > +try: >> > > + import picshell.engine.core.PicEngine >> > > + has_picshell = True >> > > +except ImportError: >> > > + has_picshell = False >> > > + >> > >> > > ######### >> > > # TOOLS # >> > > @@ -756,6 +762,81 @@ >> > > # JALAPI FUNC # >> > > #-------------# >> > >> > > +def picshell_unittest(jalFileName,asmFileName,hexFileName): >> > > + >> > > + if not has_picshell: >> > > + print >> sys.stderr, "Can't find PICShell libraries. Install >> > > PICShell and adjust PYTHONPATH" >> > > + sys.exit(255) >> > > + >> > > + # This piece of code is loosely based on PICShell implementation. >> > > + # This is a quick & dirty assembling :) >> > > + >> > > + from picshell.parser.JalV2AsmParser import JalV2AsmParser >> > > + from picshell.parser.AnnotationParser import AnnotationParser >> > > + from picshell.engine.core.PicThreadEngine import PicThreadEngine >> > > + from picshell.engine.core.PicEngine import PicEngine >> > > + from picshell.engine.core.State import State >> > > + from picshell.util.AssertUtil import AssertUtil >> > > + >> > > + from picshell.ui.UIManager import UIManager >> > > + >> > > + asmParser = JalV2AsmParser() >> > > + wholeCode = asmParser.parseAsmFile(asmFileName, []) >> > > + varTypeDict = JalV2AsmParser.buildVarTypeDict(wholeCode) >> > > + >> > > + parseRes = AnnotationParser.parse(file(jalFileName).read()) >> > > + noDebugList = parseRes["noDebug"] >> > > + debugList = parseRes["debug"] >> > > + langParser = JalV2AsmParser() >> > > + code = langParser.parseAsmFile(asmFileName, >> noDebugList,debugList) >> > > + >> > > + def unittest_callback(address,oracle): >> > > + line = langParser.adrToLine[address] >> > > + if line != None: >> > > + txt = code[line].line >> > > + if "@assertEquals" in txt: >> > > + res = AssertUtil.parse(txt) >> > > + var = res["var"].lower() >> > > + label = res["label"] >> > > + ref = res["ref"] >> > > + if (langParser.varAdrMapping.has_key("v_"+str(var))): >> > > + varAddr = langParser.varAdrMapping["v_"+str(var)] >> > > + varType = type = varTypeDict.get(var,'bit') >> > > + val = ui.varValue(varAddr,varType) >> > > + res= varType+" "+var+" (@"+str(varAddr)+") = 0x%X >> , >> > > expected : 0x%X" %(val,ref) >> > > + >> > > + print label, >> > > + if (ref == val) : >> > > + oracle['success'] += 1 >> > > + print ": OK" >> > > + else : >> > > + oracle['failure'] += 1 >> > > + print ": FAIL, %s != %s" % (ref,val) >> > > + else: >> > > + oracle['notrun'] += 1 >> > > + print "Can't run test '%s' because var '%s' can't >> be >> > > found" % (label,var) >> > > + >> > > + emu = PicEngine.newInstance(State(),hexFileName) >> > > + # needed to access varValue function >> > > + ui = UIManager() >> > > + ui.emu = emu >> > > + >> > > + # success failure notrun >> > > + oracle = {'success' : 0, 'failure' : 0, 'notrun' : 0} >> > > + def run(to,emu,unittest_callback): >> > > + current_address = emu.runNext() >> > > + while current_address != to: >> > > + #unit testing ? >> > > + if unittest_callback != None: >> > > + unittest_callback(current_address,oracle) >> > > + current_address = emu.runNext() >> > > + # last call on finishing address >> > > + unittest_callback(current_address,oracle) >> > > + >> > > + run(emu.lastAddress,emu,unittest_callback) >> > > + >> > > + return oracle >> > > + >> > > def unittest(filename,verbose=False): >> > > oracle = {'success' : None, 'failure' : None, 'notrun' : None} >> > > content = file(filename).read().splitlines() >> > > @@ -766,8 +847,6 @@ >> > > fout = file(fnout,"w") >> > > ferr = file(fnerr,"w") >> > > status = >> > >> > > >> do_compile([filename],exitonerror=False,clean=False,stdout=fout,stderr=ferr >> ) >> > > - fout.close() >> > > - ferr.close() >> > > except Exception,e: >> > > print >> sys.stderr, "Error while compiling file '%s': >> %s" % >> > > (filename,e) >> > > raise >> > > @@ -778,30 +857,15 @@ >> > > jal = filename >> > > asm = filename.replace(".jal",".asm") >> > > hex = filename.replace(".jal",".hex") >> > > - >> > > - >> > >> > ... >> > >> > meer lezen » >> >> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jallib" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jallib?hl=en -~----------~----~----~----~------~----~------~--~---
