X Tutup
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: smalltalkCI

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-16.04
strategy:
fail-fast: false
matrix:
smalltalk: [ Pharo64-8.0, Pharo64-7.0, Pharo-6.1, Pharo-5.0, GemStone64-3.5.4, GemStone64-3.4.5, GemStone64-3.3.9, GemStone64-3.2.17, GemStone64-3.1.0.6, Squeak64-5.3, Squeak64-5.2, Squeak64-5.1 ]
experimental: [ false ]
include:
- smalltalk: Pharo64-9.0
experimental: true
- smalltalk: Squeak64-trunk
experimental: true
continue-on-error: ${{ matrix.experimental }}
name: ${{ matrix.smalltalk }}
steps:
- uses: actions/checkout@v2
- uses: hpi-swa/setup-smalltalkCI@v1
with:
smalltalk-version: ${{ matrix.smalltalk }}
- name: Fix missing OS prerequisites for GemStone builds
run: |
git clone https://github.com/GsDevKit/GsDevKit_home.git
./GsDevKit_home/bin/utils/installOsPrereqs
continue-on-error: true
if: startsWith(matrix.smalltalk,'GemStone')
- name: Run tests
run: smalltalkci -s ${{ matrix.smalltalk }}
shell: bash
timeout-minutes: 10
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
*grease-gemstone-core
thisContext
^ (GsContext fromLevel: 1) sender sender
^ GsContext fromLevel: 3
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
accessing
namedTempAt: index
^ self tempAt: index
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
private
returnSender
^ GRPlatform current thisContext sender
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
tests-processes
tests
testThisContext
| methodContext |
methodContext := self platform thisContext.
[
| blockContext |
blockContext := self platform thisContext.
self assert: blockContext sender = methodContext ]
value
| methodContext block |
methodContext := self platform thisContext.
block := [ | blockContext |
blockContext := self platform thisContext.
self assert: blockContext sender = methodContext.
"The following is a difference between Gemstone and Pharo... "
(Smalltalk includesKey: #GRGemStonePlatform)
ifTrue: [ self assert: blockContext receiver = block ]
ifFalse: [
self assert: blockContext receiver = self.
self assert: (blockContext namedTempAt: (blockContext tempNames indexOf: #blockContext)) == blockContext ].
self assert: (blockContext namedTempAt: (blockContext tempNames indexOf: #methodContext)) == methodContext ].
block value.
self assert: self returnSender = methodContext.
self assert: methodContext receiver = self.
self assert: (self platform thisContext namedTempAt: (self platform thisContext tempNames indexOf: #block)) == block
X Tutup