Paul Sokolovsky
2850e7cd97
tests/run-tests: Add esp8266 target.
2016-02-13 17:03:12 +02:00
Paul Sokolovsky
dc587a3623
test/float2int: Make test output clearer.
2016-02-13 17:03:02 +02:00
Damien George
f7e5e677df
tests/pyb: Add simple test for stm module on pyboard.
2016-02-10 17:06:07 +00:00
Damien George
3e02b1d19a
py/viper: Allow casting of Python integers to viper pointers.
...
This allows you to pass a number (being an address) to a viper function
that expects a pointer, and also allows casting of integers to pointers
within viper functions.
This was actually the original behaviour, but it regressed due to native
type identifiers being promoted to 4 bits in width.
2016-02-09 13:29:20 +00:00
Paul Sokolovsky
5bf6eba845
tests/open_plus: Add tests for "r+", "w+" open modes.
2016-02-06 21:59:54 +02:00
Doug Currie
2e2e15cec2
py/mpz: Complete implementation of mpz_{and,or,xor} for negative args.
...
For these 3 bitwise operations there are now fast functions for
positive-only arguments, and general functions for arbitrary sign
arguments (the fast functions are the existing implementation).
By default the fast functions are not used (to save space) and instead
the general functions are used for all operations.
Enable MICROPY_OPT_MPZ_BITWISE to use the fast functions for positive
arguments.
2016-02-03 22:13:39 +00:00
pohmelie
e3a29de1dc
py/objstr: For str.format, add nested/computed fields support.
...
Eg: '{:{}}'.format(123, '>20')
@pohmelie was the original author of this patch, but @dpgeorge made
significant changes to reduce code size and improve efficiency.
2016-02-02 16:25:24 +00:00
Damien George
93bb7dffd2
py/vm: Fix popping of exception block in UNWIND_JUMP opcode.
...
Fixes issue #1812 .
2016-02-01 16:07:21 +00:00
Damien George
9e677114e4
py/mpprint: Fix sign extension when printf'ing %u, %x and %X.
2016-02-01 15:08:42 +00:00
Damien George
ef5f2669dc
tests: For pyboard, add test for I2C error handling and recovery.
2016-01-30 00:06:04 +00:00
Damien George
3cfb15cf4d
tests: Update pyboard LED test.
2016-01-29 23:12:59 +00:00
Damien George
8f54c08691
py/inlineasm: Add ability to specify return type of asm_thumb funcs.
...
Supported return types are: object, bool, int, uint.
For example:
@micropython.asm_thumb
def foo(r0, r1) -> uint:
add(r0, r0, r1)
2016-01-27 14:27:10 +00:00
Damien George
ac11e89fa3
tests: For urandom test, use sys.exit() instead of sys.exit(1).
2016-01-26 21:57:02 +00:00
Damien George
0ae97f531d
tests: Add some tests for urandom module.
2016-01-26 15:27:00 +00:00
Dave Hylands
a17755ee8b
py: Add ustruct.pack_into and unpack_from
2016-01-19 12:25:28 +00:00
chrysn
f8ba2eca80
builtin property: accept keyword arguments
...
this allows python code to use property(lambda:..., doc=...) idiom.
named versions for the fget, fset and fdel arguments are left out in the
interest of saving space; they are rarely used and easy to enable when
actually needed.
a test case is included.
2016-01-14 21:15:18 +02:00
stijn
dea585f8ae
tests: Remove builtin_dict test
...
This is essentially a duplicate of obj_dict.py
2016-01-14 21:10:59 +02:00
Dave Hylands
66d0c1052a
extmod: Fix uctypes size calculation for bitfields
2016-01-10 23:31:26 +02:00
Damien George
3b936a5f4c
tests: Fix math_fun_special test so it passes with single prec float.
2016-01-08 17:58:02 +00:00
Damien George
b1fa907d56
tests: Allow float tests to run when MATH_SPECIAL_FUNCTIONS is disabled.
2016-01-08 14:27:21 +00:00
Damien George
ea8be373a9
py/inlinethumb: Remove 30-bit restriction on movwt instruction.
...
movwt can now move a full 32-bit constant into a register.
2016-01-07 16:34:11 +00:00
Damien George
22b2265053
py/parse: Improve constant folding to operate on small and big ints.
...
Constant folding in the parser can now operate on big ints, whatever
their representation. This is now possible because the parser can create
parse nodes holding arbitrary objects. For the case of small ints the
folding is still efficient in RAM because the folded small int is stored
inplace in the parse node.
Adds 48 bytes to code size on Thumb2 architecture. Helps reduce heap
usage because more constants can be computed at compile time, leading to
a smaller parse tree, and most importantly means that the constants don't
have to be computed at runtime (perhaps more than once). Parser will now
be a little slower when folding due to calls to runtime to do the
arithmetic.
2016-01-07 14:40:35 +00:00
Damien George
d4df8f4925
py/objstr: In str.format, handle case of no format spec for string arg.
...
Handles, eg, "{:>20}".format("foo"), where there is no explicit spec for
the type of the argument.
2016-01-04 13:13:39 +00:00
Paul Sokolovsky
ee7b8f32e3
tests/object_dict.py: Add test for obj.__dict__ .
2016-01-03 20:51:36 +02:00
stijn
3c014a67ea
py: Implement __dict__ for instances.
...
Note that even though wrapped in MICROPY_CPYTHON_COMPAT, it is not
fully compatible because the modifications to the dictionary do not
propagate to the actual instance members.
2016-01-03 20:51:26 +02:00
Dave Hylands
7281d95aee
py: Make dir report instance members
2016-01-03 20:37:18 +02:00
Antonin ENFRUN
b50030b1d0
tests/uctypes: Test item assignment for scalar arrays.
2016-01-03 20:32:51 +02:00
Damien George
e5ce5e2a43
tests: Skip class_bind_self.py for native emitter.
2015-12-26 13:06:50 +00:00
Damien George
78913211a9
py: Be more restrictive binding self when looking up instance attrs.
...
When looking up and extracting an attribute of an instance, some
attributes must bind self as the first argument to make a working method
call. Previously to this patch, any attribute that was callable had self
bound as the first argument. But Python specs require the check to be
more restrictive, and only functions, closures and generators should have
self bound as the first argument
Addresses issue #1675 .
2015-12-26 12:41:31 +00:00
Damien George
7ce8860b6b
tests: Skip try-finally test for native emitter.
2015-12-24 12:49:31 +00:00
Damien George
8047340d75
py: Handle case of return within the finally block of try-finally.
...
Addresses issue #1636 .
2015-12-24 12:47:39 +00:00
Damien George
117158fcd5
tests: Add tests for stream IO errors.
2015-12-23 22:37:02 +00:00
Paul Sokolovsky
664bc44f30
tests: Add tests for %-formatting of bytes.
...
This requires CPython3.5, to not require switching to it, just use .exp
file.
2015-12-20 16:54:34 +02:00
Michael Buesch
17298af61e
py/modmath: Add domain error checking to sqrt, log, log2, log10.
...
These functions will raise 'ValueError: math domain error' on invalid
input.
2015-12-12 15:12:54 +00:00
Damien George
29e9db0c58
py: Fix compiler to handle lambdas used as default arguments.
...
Addresses issue #1709 .
2015-12-12 13:42:51 +00:00
Paul Sokolovsky
a6eff059b9
unix: Rename "_os" module to "uos" for consistency with baremetal ports.
2015-12-12 00:04:35 +02:00
Damien George
de2a2e296b
tests: Add test for "not" of a user defined class.
2015-12-10 22:21:57 +00:00
Henrik Sölver
e242b1785f
py/emitinlinethumb: Add support for MRS instruction.
...
Only IPSR and BASEPRI special registers supported at the moment, but easy
to extend in the future.
2015-12-10 17:32:54 +00:00
Dave Hylands
5a4a2b1db3
extmod: Add test which demonstrates LITTLE_ENDIAN packing failure
2015-12-09 21:43:28 +02:00
Damien George
3ff259a262
py: Fix calling of parent classmethod from instance of subclass.
...
Addresses issue #1697 .
2015-12-09 17:30:01 +00:00
Damien George
0891cf7d2d
tests: Disable for_range.py test for native emitter (it requires yield).
2015-12-08 21:39:21 +00:00
Damien George
33ac0fd09f
py: Don't try to optimise for+range when args are not simple expressions.
...
Addresses issue #1693 .
2015-12-08 21:05:14 +00:00
Paul Sokolovsky
55995869e5
tests/builtin_minmax: Make compatible with @native codegen.
2015-12-07 19:32:48 +02:00
Paul Sokolovsky
36c6d2fa7d
tests/builtin_minmax: Add testcase for lazy iterable (generator).
2015-12-07 18:59:18 +02:00
pohmelie
e23d5a64cf
tests: Add min/max "default" agrument test
2015-12-07 18:56:25 +02:00
Paul Sokolovsky
cbc489dff5
tests: Actuall add feature check for complex type being available.
2015-12-06 15:13:26 +02:00
Paul Sokolovsky
eed2f36ae2
tests/run-tests: Allow to skip complex tests if it's not compiled in.
2015-12-06 14:57:31 +02:00
Paul Sokolovsky
54a1d9ecb7
tests/extra_coverage: Update for sys.modules addition.
2015-12-05 00:13:29 +02:00
Damien George
7a99639cff
py: Fix function calls that have positional and a star-arg-with-iterator.
...
Addresses issue #1678 .
2015-12-03 17:59:49 +00:00
Damien George
0d9b450701
stmhal: Make uart.write() function correctly for timeout=0.
...
In non-blocking mode (timeout=0), uart.write() can now transmit all of its
data without raising an exception. uart.read() also works correctly in
this mode.
As part of this patch, timout_char now has a minimum value which is long
enough to transfer 1 character.
Addresses issue #1533 .
2015-11-30 17:29:52 +00:00
Ryan Shaw
f99491cbf7
stmhal: uart.any() function now returns number of bytes available.
2015-11-30 13:07:20 +00:00
Paul Sokolovsky
ff8c4188f4
tests/run-tests: Improve robustness of REPL tests.
...
Unconditionally wait for MicroPython banner. On overloaded systems, when
using emulators, etc. initial executable startup may take more than 20ms.
2015-11-24 19:52:30 +02:00
Damien George
9a56912ad1
py/compile: Do proper checking of * and ** in function definition.
...
This patch checks that there is only one *, and that ** is last in the
arg list.
2015-11-23 16:50:42 +00:00
Damien George
0e3f29cc99
py: Check that second argument to hasattr is actually a string.
...
Fixes issue #1623 .
2015-11-23 15:57:00 +00:00
Paul Sokolovsky
4120f32292
tests/int_big_*: Add more tests for result normalization.
...
Tested by comparability to small int/casting to bool.
2015-11-22 22:11:01 +02:00
Paul Sokolovsky
b56c635d64
tests/int_big_xor: Test that xor result is normalized.
...
And thus can be successfully used in comparisons, etc.
2015-11-22 22:02:15 +02:00
Paul Sokolovsky
b64e0575fd
tests/float/string_format: Add testcase for incorrect rounding for %f.
2015-11-22 18:08:49 +02:00
Damien George
2c83894257
py: Implement default and star args for lambdas.
2015-11-17 14:00:14 +00:00
danicampora
e4404fbef0
cc3200: Unmount all user file systems after a soft reset.
2015-11-16 23:43:47 +01:00
Paul Sokolovsky
772f0b4159
tests/jni: Add test for working with container of List interface.
2015-11-13 01:33:09 +02:00
Henrik Sölver
35e7d9c0f1
stmhal/can: Fix a bug in filter handling.
...
Reported here: http://forum.micropython.org/viewtopic.php?f=2&t=845
2015-11-02 23:09:49 +00:00
Paul Sokolovsky
aee704ebe1
extmod/modure: Make sure that errors in regexps are caught early.
2015-11-01 00:38:22 +03:00
Paul Sokolovsky
0bd3f3291d
tests/base/struct1.py: Add test for repetition counters.
2015-10-31 18:55:31 +03:00
stijn
24b03561bd
tests: Make sure test output has \r\n line-ends when running on Windows
...
This is the case already when using just subprocess.check_output, but in
the special cases (cmdline, meminfo, ...) the carriage return gets lost
during output processing so restore it in the end.
This fixes the micropython/meminfo.py test on Windows.
2015-10-31 14:11:19 +03:00
adminpete
d6201fc4b7
py: In inline asm, vldr and vstr offsets now in bytes not words.
...
As per ARM convention.
2015-10-31 10:50:45 +00:00
danicampora
1950295735
cc3200: Set pin direction first, then value. Fixes #1542 .
2015-10-26 23:26:43 +01:00
Paul Sokolovsky
9a334d41e3
tests/jni: Test for basic object operations.
2015-10-24 01:20:34 +03:00
danicampora
075ca64521
cc3200: Fix UART tests after correcting uart.read() behaviour.
2015-10-21 15:30:57 +02:00
danicampora
1f2daf4304
cc3200: Correct ticks_cpu and ticks_us functions in time module.
2015-10-21 15:30:57 +02:00
Damien George
e693e52442
tests: Disable some tests for pyboard that do not run correctly.
2015-10-20 23:55:50 +01:00
Paul Sokolovsky
acea9352a9
tests/extmod: Add tests for sleep_ms/us(), ticks_ms/us/diff().
...
Simple smoke tests, mostly for coverage. Added to extmod based on the fact
that they're extensions to standard modules.
2015-10-20 01:54:20 +03:00
danicampora
9c72c71c05
cc3200: WLAN class can retrieve the existing instance.
2015-10-19 21:17:15 +02:00
danicampora
f4c50f1cfc
tests/wipy: Make WLAN test more stable.
2015-10-19 21:17:15 +02:00
danicampora
ae70e98ed4
cc3200: Fix time.ticks_* functions.
2015-10-19 21:17:15 +02:00
danicampora
36ae417c9f
docs: Add wipy and network.server documentation.
2015-10-19 21:17:15 +02:00
danicampora
2e0cd20a1d
cc3200: Refactor network module to make the server a propper object.
2015-10-19 21:17:15 +02:00
danicampora
d8137178bb
cc3200: Create wipy module, remove HeartBeat class.
...
The heartbeat is now controllable via a single function within the
wipy module.
2015-10-19 21:17:15 +02:00
Damien George
096d1e4512
py: Add lsl/lsr/asr opcode support to inline Thumb2 assembler.
2015-10-19 14:26:19 +01:00
danicampora
e19dfe1c32
cc3200: In scan results rename 'auth' field to 'sec'.
...
As defined by the new API, since 'auth' is actually a tuple
composed by the security type and the key.
2015-10-17 23:21:44 +02:00
Damien George
4bf3f2d3c0
py: Fix with+for+return bug by popping for-iter when unwinding exc stack.
...
Addresses issue #1182 .
2015-10-15 17:48:28 +01:00
Damien George
4300c7dba2
py: Remove dependency on printf/fwrite in mp_plat_print.
...
See issue #1500 .
2015-10-15 00:05:55 +01:00
Paul Sokolovsky
2430dfac31
tests/jni: Start adding modjni tests.
...
These are currently not intended to run with the rest of testsuite, as
they require dependencies and special environment setup anyway (drafted
in tests/jni/README).
2015-10-14 00:56:01 +03:00
Damien George
2ec835f572
tests: Add more tests for viper 16/32-bit load/store, and ellipsis.
2015-10-13 18:24:36 +01:00
Damien George
b8f9ac5411
py: Implement ptr32 load and store in viper emitter.
2015-10-13 00:50:17 +01:00
Damien George
3aa7dd23c9
unix: Add exit and paste-mode hints to shell startup banner.
...
Thanks to @nyov for the initial patch.
2015-10-12 00:19:00 +01:00
Damien George
0334058fa4
Rename "Micro Python" to "MicroPython" in REPL, help, readme's and misc.
2015-10-12 00:06:25 +01:00
Peter Hinch
0e87bc7be6
tests: In pyb RTC tests, check wakeup register values.
2015-10-09 23:06:05 +01:00
Damien George
4fb5ff86ee
tests: Add test for evaluation order of dictionary key/value pairs.
...
In Python 3.4 the value is evaluated before the key. In Python 3.5 it's
key then value.
2015-10-08 13:15:07 +01:00
Damien George
9f5f156b9d
py/emitnative: Raise ViperTypeError for unsupported unary ops.
2015-10-08 13:08:59 +01:00
Damien George
7e12a601b8
py/compile: Fix edge case when constant-folding negation of integer.
...
Also adds tests specifically for testing constant folding.
2015-10-08 13:02:00 +01:00
Paul Sokolovsky
062bd81814
tests/basics/builtin_range: PEP8 fixes.
2015-10-05 20:02:52 +03:00
Damien George
34f26ea862
tests: Allow tests to pass against CPython 3.5.
...
All breaking changes going from 3.4 to 3.5 are contained in
basics/python34.py.
2015-10-02 13:01:47 +01:00
Damien George
e5635f4ab3
py: Catch all cases of integer (big and small) division by zero.
2015-10-01 22:48:48 +01:00
Damien George
2065373f67
py/mpz: Fix bignum anding of large negative with smaller positive int.
2015-10-01 22:35:06 +01:00
Damien George
a81539db25
tests: Add further tests for mpz code.
2015-10-01 18:49:37 +01:00
Damien George
4c02e54298
py/mpz: Raise NotImplError instead of failing assertion.
2015-10-01 17:57:36 +01:00
Tom Soulanille
2a8a564fbd
tests: Test slicing a range that does not start at zero.
2015-09-28 14:01:20 +00:00
Daniel Campora
d88d3b0b3a
tests/wipy: Skip the rtc_irq test.
2015-09-27 21:36:38 +02:00
Daniel Campora
d5de1bf853
tests: Skip uheapq1 test if target is WiPy.
2015-09-27 18:47:35 +02:00
Daniel Campora
6143f63560
tests/wipy: Fix error in wlan test.
2015-09-27 18:00:36 +02:00
Daniel Campora
37a2015cc5
tests/wipy: Add machine module tests.
2015-09-27 17:35:58 +02:00
Daniel Campora
958e273336
tests: Skip extmod machine tests when target is WiPy.
2015-09-27 17:35:45 +02:00
Daniel Campora
c92e6a45eb
cc3200: Rename pyb module to machine.
2015-09-27 16:50:27 +02:00
Daniel Campora
0a7e4fa5ce
tests/wipy: Improve robustness of rtc_irq test.
2015-09-27 14:20:38 +02:00
Daniel Campora
8192310dad
tests/wipy: Improve robustness of time test.
2015-09-27 12:32:02 +02:00
Daniel Campora
ef369249cb
cc3200: Implement support for os.dupterm().
2015-09-27 11:27:24 +02:00
Daniel Campora
57fa14b5be
cc3200: New WLAN API including test.
2015-09-27 01:50:52 +02:00
Daniel Campora
dbdcb58d64
cc3200: New irq API, affects all classes that provide the irq method.
2015-09-27 01:48:20 +02:00
stijn
dfa915a6af
tests: Omit process output parsing in case of CalledProcessError
...
Adding a line-end makes the determination of skip_native fail as it compares
the output against b'CRASH' while it is in fact b'CRASH\n'
2015-09-23 11:50:24 +01:00
Delio Brignoli
e6978a4e26
py: Fix call args when a stararg is followed by keyword args.
2015-09-23 11:37:00 +01:00
Daniel Campora
dffa9f6da6
cc3200: New SD and RTC API plus os and time modules' extensions.
2015-09-21 22:30:32 +02:00
Daniel Campora
660f8613fd
tests/wipy: Remove unneeded dependencies to pyb.Pin.
2015-09-21 22:30:11 +02:00
Alex March
15018291b2
tests: Add escaped quotes tests for REPL.
...
Test possible combinations of single and double quotes with escaped
quotes and parenthesis with and without function calls in REPL.
Covers: #1419
2015-09-19 14:06:23 +01:00
Daniel Campora
22b4c28f85
cc3200: New ADC API.
2015-09-16 10:10:38 +02:00
Daniel Campora
0e52d9860a
tests/wipy: Improve I2C tests.
2015-09-16 10:10:35 +02:00
Daniel Campora
aba75e1233
cc3200: New SPI API.
2015-09-16 10:10:33 +02:00
Daniel Campora
41f6948545
cc3200: New WDT API.
2015-09-16 10:10:29 +02:00
Daniel Campora
8332044f75
cc3200: Add UART.ODD and UART.EVEN to select parity.
2015-09-16 10:10:26 +02:00
Daniel Campora
d5ec336eef
cc3200: Replace Pin.PULL_NONE with None.
2015-09-16 10:10:24 +02:00
Daniel Campora
e77abc261b
cc3200: Default peripheral ID support on I2C.
2015-09-16 10:10:19 +02:00
Daniel Campora
7d6b6f6681
cc3200: Make UART choose default id when not given.
2015-09-16 10:10:13 +02:00
Tom Soulanille
aeb62f9ae3
py/objslice: Make slice attributes (start/stop/step) readable.
...
Configurable with MICROPY_PY_BUILTINS_SLICE_ATTRS. Disabled by default.
2015-09-15 21:59:20 +01:00
Tom Soulanille
04fffe6562
tests/README: Explain how tests get skipped
2015-09-15 20:05:05 +03:00
Damien George
8b4fb4fe14
py/mpz: Fix calculation of max digit storage for mpz; fix sys.maxsize.
...
When creating constant mpz's, the length of the mpz must be exactly how
many digits are used (not allocated) otherwise these numbers are not
compatible with dynamically allocated numbers.
Addresses issue #1448 .
2015-09-15 16:15:57 +01:00
Damien George
3ca84026db
unix: Enable REPL auto-indent.
2015-09-12 22:09:18 +01:00
Dave Hylands
9d6128acdc
stmhal: fix single precision float printing error
...
Fixes #1435 .
2015-09-11 23:09:50 +03:00
Daniel Campora
f352fe82a5
tests/wipy: Add I2C tests.
2015-09-10 08:00:59 +02:00
Daniel Campora
d265df589e
tests/wipy: Disable the REPL on UART before running the UART test.
2015-09-10 08:00:53 +02:00
Daniel Campora
4cc0cd6cab
tests/wipy: Additional tests for when the UART is un-initialized.
2015-09-10 08:00:35 +02:00
Daniel Campora
4d7fa05b43
cc3200: Improve Pin and UART implementation.
...
Deassign pins af before assigning. Make uart.any() return the
correct value everytime, this requires interrupts to be always
enabled.
2015-09-10 08:00:12 +02:00
Daniel Campora
f8b98d8329
tests/wipy: Improve UART tests with no pin assignment case.
2015-09-10 07:59:59 +02:00
Daniel Campora
88ca6c94d9
tests: Ignore exception chain test on the WiPy.
...
Fails because warnings are not enabled on the CC3200.
2015-09-10 07:59:53 +02:00
Daniel Campora
f91f212d9f
cc3200: New UART API plus related test.
2015-09-10 07:59:47 +02:00
Daniel Campora
36821d095a
cc3200: Add alternate functions list to Pin object.
...
Also remove pin.high() and pin.low() methods.
2015-09-10 07:59:41 +02:00
Daniel Campora
d5e256486e
cc3200: Re-work Pin class according to the new API.
...
Also add relevant test.
2015-09-10 07:59:35 +02:00
Damien George
75a811a6df
tests: Move int+unicode test to unicode-specific test directory.
2015-09-07 21:36:24 +01:00
Damien George
2b000474d9
py/lexer: Properly classify floats that look like hex numbers.
...
Eg 0e0 almost looks like a hex number but in fact is a float.
2015-09-07 17:33:44 +01:00
Damien George
0be3c70cd8
py/lexer: Raise SyntaxError when unicode char point out of range.
2015-09-07 17:19:17 +01:00
Damien George
081f9325f5
py/lexer: Raise NotImplError for unicode name escape, instead of assert.
2015-09-07 17:08:49 +01:00
Damien George
a7ffa972f3
tests: Add tests for non-compliant behaviour of lexer.
2015-09-07 16:59:55 +01:00
Damien George
558a016e2c
py/compile: Refine SyntaxError for repeated use of global/nonlocal.
2015-09-07 16:55:02 +01:00
Damien George
55b11e6d38
py/objstr: For str.endswith(s, start) raise NotImpl instead of assert.
2015-09-04 16:49:56 +01:00
Damien George
25afc7da0d
tests: Add tests to improve coverage of objstr.c.
2015-09-03 23:06:18 +01:00
Damien George
81794fcd31
py/binary: Add support for array('q') and array('Q').
2015-09-01 16:31:48 +01:00
Damien George
22602cc37b
py/objstr: Make str.rsplit(None,n) raise NotImpl instead of assert(0).
2015-09-01 15:35:31 +01:00
Paul Sokolovsky
1b693543aa
tests: Skip exception_chain.py with native emitter.
2015-09-01 11:53:27 +03:00
Paul Sokolovsky
ab2594e341
tests: Add test for exception-chaining raise syntax.
2015-09-01 10:39:11 +03:00
Damien George
39c91d3624
tests: Fix non-compliant expected output to match actual behaviour.
2015-08-30 12:46:08 +01:00
Damien George
000730ecaa
py/objstr: Simplify error handling for bad conversion specifier.
2015-08-30 12:43:21 +01:00
Damien George
c9fa667252
tests: Add tests for non-compliant behaviour.
...
These tests are intended to improve coverage and provide a record of
behaviour that's either not implemented or non-compliant to CPython.
2015-08-30 12:32:26 +01:00
Damien George
c2ec2ad8fb
tests: Add test where __getitem__ raises IndexError to stop iteration.
2015-08-30 11:49:59 +01:00
Paul Sokolovsky
a3fe307400
tests: Consolidate all feature check snippets under feature_check/.
2015-08-30 11:36:42 +03:00
Paul Sokolovsky
1a1b48e51a
tests: Add feature_check dir to collect capability detection scripts.
...
Which are currently intermixed with real scripts and spread around various
dirs.
2015-08-30 11:11:18 +03:00
Damien George
b648e98ad0
py/objstr: Fix error reporting for unexpected end of modulo format str.
2015-08-29 23:13:51 +01:00
Damien George
7ef75f9f75
py/objstr: Fix error type for badly formatted format specifier.
...
Was KeyError, should be ValueError.
2015-08-29 23:13:51 +01:00
Damien George
51b9a0d0c4
py/objstr: Make string formatting 8-bit clean.
2015-08-29 23:13:51 +01:00
Damien George
1d350b8ac6
tests: Add a few tests for bool, bytearray, float to improve coverage.
2015-08-29 23:13:28 +01:00
Paul Sokolovsky
a488c266c3
tests: Add byteorder query script.
2015-08-30 01:04:04 +03:00
Paul Sokolovsky
58d9b10d70
tests: Split byteorder-dependent tests to *_endian.py's.
2015-08-30 00:38:00 +03:00
Paul Sokolovsky
0a8b5d160b
run-tests: Allow to skip byteorder-dependent tests.
...
If byteorder of MicroPython under test and host CPython differ.
2015-08-30 00:37:53 +03:00
Paul Sokolovsky
5cb524673e
tests/ffi_float: Split tgammaf() testcase to a separate test.
...
Some libc's may implement tgammaf as a header macro using tgamma(), so
don't assume it'll be in the library.
2015-08-29 17:24:29 +03:00
Paul Sokolovsky
a160b70ced
tests: Add test on set/frozenset equality.
2015-08-28 22:42:01 +03:00
Paul Sokolovsky
8b3b2d04a8
objset: frozensets are hashable.
2015-08-28 22:31:52 +03:00
Damien George
936e25b164
tests: For unix ffi float test, add libm.so.6 to library search list.
...
Latest Arch Linux doesn't have libm.so as a proper shared object and so
we need to load libm.so.6.
2015-08-25 18:14:53 +01:00
Damien George
d007cb8903
tests: Add more tests to improve coverage, mostly testing exceptions.
2015-08-21 12:02:09 +01:00
Damien George
d292a81e95
tests: Make io test cleanup after itself by removing 'testfile'.
2015-08-21 08:45:52 +01:00
Damien George
65dc960e3b
unix-cpy: Remove unix-cpy. It's no longer needed.
...
unix-cpy was originally written to get semantic equivalent with CPython
without writing functional tests. When writing the initial
implementation of uPy it was a long way between lexer and functional
tests, so the half-way test was to make sure that the bytecode was
correct. The idea was that if the uPy bytecode matched CPython 1-1 then
uPy would be proper Python if the bytecodes acted correctly. And having
matching bytecode meant that it was less likely to miss some deep
subtlety in the Python semantics that would require an architectural
change later on.
But that is all history and it no longer makes sense to retain the
ability to output CPython bytecode, because:
1. It outputs CPython 3.3 compatible bytecode. CPython's bytecode
changes from version to version, and seems to have changed quite a bit
in 3.5. There's no point in changing the bytecode output to match
CPython anymore.
2. uPy and CPy do different optimisations to the bytecode which makes it
harder to match.
3. The bytecode tests are not run. They were never part of Travis and
are not run locally anymore.
4. The EMIT_CPYTHON option needs a lot of extra source code which adds
heaps of noise, especially in compile.c.
5. Now that there is an extensive test suite (which tests functionality)
there is no need to match the bytecode. Some very subtle behaviour is
tested with the test suite and passing these tests is a much better
way to stay Python-language compliant, rather than trying to match
CPy bytecode.
2015-08-17 12:51:26 +01:00
blmorris
bdd78c31b6
py: Add stream_tell method, and use for unix and stmhal file tell.
2015-08-13 22:56:32 +01:00
Tom Soulanille
20f40c3229
tests: Remove over-specification of startup banner
2015-08-08 12:37:36 +01:00
stijn
dbfba6a20e
tests: Fix exceptions when running cmdline tests on windows
...
- subprocess.check_output can only handle strings on windows, not bytes,
so convert the arguments as such
- the pty module is for posix systems only so skip the tests needing it
in case it is not available
2015-08-08 12:35:27 +01:00
stijn
7ede3ec4b1
tests: Always use forward slashes for paths
...
This is more consistent and fixes run_micropython on windows as it uses
forward slahses to compare paths
2015-08-08 12:35:27 +01:00
Tom Soulanille
89852d38ef
run-tests: Test REPL emacs keys, but only if present.
...
Uses cmdline/repl_emacs_check.py to check for presence of emacs keys in
repl before doing full feature test.
2015-08-06 00:03:44 +01:00
Damien George
526dd54252
tests: Add test for pyboard SPI in slave mode, recv with no master.
...
See PR #1414 .
2015-08-05 23:47:57 +01:00
Damien George
9a2913ed1c
py/objlist: Make list += accept all arguments and add test.
2015-08-02 20:53:54 +01:00
Tom Soulanille
3dd0b69e46
run-tests: Use PTY when running REPL tests.
2015-07-26 15:23:11 +01:00
Daniel Campora
cd14188bc8
tools: Add telnet support to pyboard.py.
...
The adapter class "TelnetToSerial" is used to access the Telnet
connection using the same API as with the serial connection. The
function pyboard.run-test() has been removed to made the module
generic and because this small test is no longer needed.
2015-07-26 14:02:34 +01:00
Damien George
3900fed849
tests: Skip parser test if "compile" builtin is not available.
2015-07-24 22:37:26 +01:00
Damien George
96f0dd3cbc
py/parse: Fix handling of empty input so it raises an exception.
2015-07-24 15:05:56 +00:00
Damien George
d241c2a592
py/lexer: Raise SyntaxError when str hex escape sequence is malformed.
...
Addresses issue #1390 .
2015-07-23 23:20:37 +01:00
Damien George
e45c1dbd6f
py: Allow viper functions to take up to 4 arguments.
...
Addresses issue #1380 .
2015-07-23 14:11:29 +01:00
Delio Brignoli
32aba40830
py: Implement memoryview slice assignment.
...
Adds ability to do "memcpy" with memoryview objects, such as:
m1[0:3] = m2[2:5].
2015-07-20 15:53:22 +01:00
Sebastian Plamauer
1e8ca3a3cf
modbuiltins: Implement round() to precision.
2015-07-19 21:49:44 +03:00
Paul Sokolovsky
354d17523f
modmachine: Implement physical memory access using /dev/mem (Linux, etc).
...
This requires root access. And on recent Linux kernels, with
CONFIG_STRICT_DEVMEM option enabled, only address ranges listed in
/proc/iomem can be accessed. The above compiled-time option can be
however overriden with boot-time option "iomem=relaxed".
This also removed separate read/write paths - there unlikely would
be a case when they're different.
2015-07-08 11:37:23 +03:00
Damien George
68e8b595de
tests: Catch ValueError instead of any exception to properly test error.
2015-07-06 11:35:08 +00:00
Galen Hazelwood
616986a5f3
extmod: Add a2b_base64 and b2a_base64 functions to ubinascii.
2015-07-04 12:26:52 +03:00
Paul Sokolovsky
9896314f5b
tests: Add test for relative import without package context.
2015-06-27 00:40:22 +03:00
Damien George
59fba2d6ea
py: Remove mp_load_const_bytes and instead load precreated bytes object.
...
Previous to this patch each time a bytes object was referenced a new
instance (with the same data) was created. With this patch a single
bytes object is created in the compiler and is loaded directly at execute
time as a true constant (similar to loading bignum and float objects).
This saves on allocating RAM and means that bytes objects can now be
used when the memory manager is locked (eg in interrupts).
The MP_BC_LOAD_CONST_BYTES bytecode was removed as part of this.
Generated bytecode is slightly larger due to storing a pointer to the
bytes object instead of the qstr identifier.
Code size is reduced by about 60 bytes on Thumb2 architectures.
2015-06-25 14:42:13 +00:00
Damien George
e44c1d3ace
tests: Split out json float tests to separate files.
2015-06-25 10:50:00 +01:00
Daniel Campora
186b355b28
tests: Add support for the WiPy in run-tests script.
...
The --pyboard param has been replaced by --target which defaults to
'unix'. Possible values at this moment are 'unix', 'pyboard' and
'wipy'. Now is also possible to select the baud rate of the serial
device when calling the script.
2015-06-25 10:45:25 +01:00
Daniel Campora
4af5424242
tests: Adapt misc/features.py tests for ports without floating point.
2015-06-24 17:53:29 +01:00
Daniel Campora
d709622bd2
tests: Adapt basics/memoryerror.py for ports with lower heap sizes.
2015-06-24 15:25:59 +02:00
Paul Sokolovsky
a06c38b486
tests: Add testcase for open(..., "a").
2015-06-21 00:05:09 +03:00
Damien George
06593fb0f2
py: Use a wrapper to explicitly check self argument of builtin methods.
...
Previous to this patch a call such as list.append(1, 2) would lead to a
seg fault. This is because list.append is a builtin method and the first
argument to such methods is always assumed to have the correct type.
Now, when a builtin method is extracted like this it is wrapped in a
checker object which checks the the type of the first argument before
calling the builtin function.
This feature is contrelled by MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG and
is enabled by default.
See issue #1216 .
2015-06-20 16:39:39 +01:00
Damien George
f6518a7bd5
tests: Check that machine module exists and print SKIP if it doesn't.
2015-06-15 23:35:15 +01:00
Damien George
e9ce00d874
py: Implement divmod for mpz bignum.
2015-06-13 23:38:28 +01:00
Damien George
c5029bcbf3
py: Add MP_BINARY_OP_DIVMOD to simplify and consolidate divmod builtin.
2015-06-13 23:36:30 +01:00
Damien George
6f49520042
py: Implement second arg for math.log (optional value for base).
2015-06-13 22:35:25 +01:00
Damien George
7ed58cb663
py: Support unicode (utf-8 encoded) identifiers in Python source.
...
Enabled simply by making the identifier lexing code 8-bit clean.
2015-06-09 10:58:07 +00:00
Damien George
6e56bb623c
py: Fallback to stack alloca for Python-stack if heap alloc fails.
...
If heap allocation for the Python-stack of a function fails then we may
as well allocate the Python-stack on the C stack. This will allow to
run more code without using the heap.
2015-06-08 22:07:27 +01:00
Paul Sokolovsky
1679696612
moductypes: Swap address and descriptor args in constructor.
...
Now address comes first, and args related to struct type are groupped next.
Besides clear groupping, should help catch errors eagerly (e.g. forgetting
to pass address will error out).
Also, improve args number checking/reporting overall.
2015-06-06 22:57:54 +03:00