tests: Add tests to improve coverage of objstr.c.
This commit is contained in:
parent
e2aa117798
commit
25afc7da0d
|
@ -20,3 +20,9 @@ try:
|
||||||
ord(b'')
|
ord(b'')
|
||||||
except TypeError:
|
except TypeError:
|
||||||
print("TypeError")
|
print("TypeError")
|
||||||
|
|
||||||
|
# argument must be a string
|
||||||
|
try:
|
||||||
|
ord(1)
|
||||||
|
except TypeError:
|
||||||
|
print('TypeError')
|
||||||
|
|
|
@ -14,6 +14,18 @@ print(bytes(array('h', [0x101, 0x202])))
|
||||||
# long ints
|
# long ints
|
||||||
print(ord(bytes([14953042807679334000 & 0xff])))
|
print(ord(bytes([14953042807679334000 & 0xff])))
|
||||||
|
|
||||||
|
# constructor value out of range
|
||||||
|
try:
|
||||||
|
bytes([-1])
|
||||||
|
except ValueError:
|
||||||
|
print('ValueError')
|
||||||
|
|
||||||
|
# constructor value out of range
|
||||||
|
try:
|
||||||
|
bytes([256])
|
||||||
|
except ValueError:
|
||||||
|
print('ValueError')
|
||||||
|
|
||||||
# error in construction
|
# error in construction
|
||||||
try:
|
try:
|
||||||
a = bytes([1, 2, 3], 1)
|
a = bytes([1, 2, 3], 1)
|
||||||
|
|
|
@ -11,3 +11,8 @@ setattr(a, "var", 123)
|
||||||
setattr(a, "var2", 56)
|
setattr(a, "var2", 56)
|
||||||
print(a.var)
|
print(a.var)
|
||||||
print(a.var2)
|
print(a.var2)
|
||||||
|
|
||||||
|
try:
|
||||||
|
setattr(a, b'var3', 1)
|
||||||
|
except TypeError:
|
||||||
|
print('TypeError')
|
||||||
|
|
|
@ -24,6 +24,10 @@ try:
|
||||||
'123' * '1'
|
'123' * '1'
|
||||||
except TypeError:
|
except TypeError:
|
||||||
print('TypeError')
|
print('TypeError')
|
||||||
|
try:
|
||||||
|
'123' + 1
|
||||||
|
except TypeError:
|
||||||
|
print('TypeError')
|
||||||
|
|
||||||
# subscription
|
# subscription
|
||||||
print('abc'[1])
|
print('abc'[1])
|
||||||
|
|
|
@ -48,3 +48,8 @@ print("1" <= "10")
|
||||||
print("1" <= "1/")
|
print("1" <= "1/")
|
||||||
print("10" <= "1")
|
print("10" <= "1")
|
||||||
print("1/" <= "1")
|
print("1/" <= "1")
|
||||||
|
|
||||||
|
# this tests an internal string that doesn't have a hash with a string
|
||||||
|
# that does have a hash, but the lengths of the two strings are different
|
||||||
|
import sys
|
||||||
|
print(sys.version == 'a long string that has a hash')
|
||||||
|
|
|
@ -207,3 +207,9 @@ try:
|
||||||
'{:*"1"}'.format('zz')
|
'{:*"1"}'.format('zz')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
print('ValueError')
|
print('ValueError')
|
||||||
|
|
||||||
|
# unknown format code for str arg
|
||||||
|
try:
|
||||||
|
'{:X}'.format('zz')
|
||||||
|
except ValueError:
|
||||||
|
print('ValueError')
|
||||||
|
|
|
@ -52,3 +52,9 @@ print(struct.unpack("<Q", b"\xff\xff\xff\xff\xff\xff\xff\xff"))
|
||||||
|
|
||||||
# network byte order
|
# network byte order
|
||||||
print(struct.pack('!i', 123))
|
print(struct.pack('!i', 123))
|
||||||
|
|
||||||
|
# first arg must be a string
|
||||||
|
try:
|
||||||
|
struct.pack(1, 2)
|
||||||
|
except TypeError:
|
||||||
|
print('TypeError')
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
# test uPy ujson behaviour that's not valid in CPy
|
||||||
|
|
||||||
|
import ujson
|
||||||
|
|
||||||
|
print(ujson.dumps(b'1234'))
|
|
@ -0,0 +1 @@
|
||||||
|
"1234"
|
|
@ -40,8 +40,26 @@ try:
|
||||||
except NotImplementedError:
|
except NotImplementedError:
|
||||||
print('NotImplementedError')
|
print('NotImplementedError')
|
||||||
|
|
||||||
|
# str(...) with keywords not implemented
|
||||||
|
try:
|
||||||
|
str(b'abc', encoding='utf8')
|
||||||
|
except NotImplementedError:
|
||||||
|
print('NotImplementedError')
|
||||||
|
|
||||||
# str.rsplit(None, n) not implemented
|
# str.rsplit(None, n) not implemented
|
||||||
try:
|
try:
|
||||||
'a a a'.rsplit(None, 1)
|
'a a a'.rsplit(None, 1)
|
||||||
except NotImplementedError:
|
except NotImplementedError:
|
||||||
print('NotImplementedError')
|
print('NotImplementedError')
|
||||||
|
|
||||||
|
# bytes(...) with keywords not implemented
|
||||||
|
try:
|
||||||
|
bytes('abc', encoding='utf8')
|
||||||
|
except NotImplementedError:
|
||||||
|
print('NotImplementedError')
|
||||||
|
|
||||||
|
# bytes subscr with step!=1 not implemented
|
||||||
|
try:
|
||||||
|
b'123'[0:3:2]
|
||||||
|
except NotImplementedError:
|
||||||
|
print('NotImplementedError')
|
||||||
|
|
|
@ -5,3 +5,6 @@ True
|
||||||
TypeError, ValueError
|
TypeError, ValueError
|
||||||
NotImplementedError
|
NotImplementedError
|
||||||
NotImplementedError
|
NotImplementedError
|
||||||
|
NotImplementedError
|
||||||
|
NotImplementedError
|
||||||
|
NotImplementedError
|
||||||
|
|
|
@ -25,3 +25,5 @@ stderr exc_info print_exception
|
||||||
ementation
|
ementation
|
||||||
# attrtuple
|
# attrtuple
|
||||||
(start=1, stop=2, step=3)
|
(start=1, stop=2, step=3)
|
||||||
|
# str
|
||||||
|
1
|
||||||
|
|
|
@ -75,6 +75,14 @@ STATIC mp_obj_t extra_coverage(void) {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// str
|
||||||
|
{
|
||||||
|
printf("# str\n");
|
||||||
|
|
||||||
|
// intern string
|
||||||
|
printf("%d\n", MP_OBJ_IS_QSTR(mp_obj_str_intern(mp_obj_new_str("intern me", 9, false))));
|
||||||
|
}
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_0(extra_coverage_obj, extra_coverage);
|
MP_DEFINE_CONST_FUN_OBJ_0(extra_coverage_obj, extra_coverage);
|
||||||
|
|
Loading…
Reference in New Issue