Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
M
micropython
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
card10
micropython
Commits
c772817d
Commit
c772817d
authored
8 years ago
by
Damien George
Browse files
Options
Downloads
Patches
Plain Diff
tests/micropython: Add tests for micropython.schedule().
parent
9ee46418
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
tests/micropython/schedule.py
+61
-0
61 additions, 0 deletions
tests/micropython/schedule.py
tests/micropython/schedule.py.exp
+4
-0
4 additions, 0 deletions
tests/micropython/schedule.py.exp
tests/run-tests
+1
-0
1 addition, 0 deletions
tests/run-tests
with
66 additions
and
0 deletions
tests/micropython/schedule.py
0 → 100644
+
61
−
0
View file @
c772817d
# test micropython.schedule() function
import
micropython
try
:
micropython
.
schedule
except
AttributeError
:
print
(
'
SKIP
'
)
import
sys
sys
.
exit
()
# Basic test of scheduling a function.
def
callback
(
arg
):
global
done
print
(
arg
)
done
=
True
done
=
False
micropython
.
schedule
(
callback
,
1
)
while
not
done
:
pass
# Test that callbacks can be scheduled from within a callback, but
# that they don't execute until the outer callback is finished.
def
callback_inner
(
arg
):
global
done
print
(
'
inner
'
)
done
+=
1
def
callback_outer
(
arg
):
global
done
micropython
.
schedule
(
callback_inner
,
0
)
# need a loop so that the VM can check for pending events
for
i
in
range
(
2
):
pass
print
(
'
outer
'
)
done
+=
1
done
=
0
micropython
.
schedule
(
callback_outer
,
0
)
while
done
!=
2
:
pass
# Test that scheduling too many callbacks leads to an exception. To do this we
# must schedule from within a callback to guarantee that the scheduler is locked.
def
callback
(
arg
):
global
done
try
:
for
i
in
range
(
100
):
micropython
.
schedule
(
lambda
x
:
x
,
None
)
except
RuntimeError
:
print
(
'
RuntimeError
'
)
done
=
True
done
=
False
micropython
.
schedule
(
callback
,
None
)
while
not
done
:
pass
This diff is collapsed.
Click to expand it.
tests/micropython/schedule.py.exp
0 → 100644
+
4
−
0
View file @
c772817d
1
outer
inner
RuntimeError
This diff is collapsed.
Click to expand it.
tests/run-tests
+
1
−
0
View file @
c772817d
...
...
@@ -319,6 +319,7 @@ def run_tests(pyb, tests, args):
skip_tests
.
add
(
'
misc/sys_exc_info.py
'
)
# sys.exc_info() is not supported for native
skip_tests
.
add
(
'
micropython/heapalloc_traceback.py
'
)
# because native doesn't have proper traceback info
skip_tests
.
add
(
'
micropython/heapalloc_iter.py
'
)
# requires generators
skip_tests
.
add
(
'
micropython/schedule.py
'
)
# native code doesn't check pending events
for
test_file
in
tests
:
test_file
=
test_file
.
replace
(
'
\\
'
,
'
/
'
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment