Skip to content

Commit

Permalink
Fix regression for GRBL controller reset
Browse files Browse the repository at this point in the history
  • Loading branch information
breiler committed Nov 29, 2024
1 parent 84d7f11 commit a211ab9
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,10 @@ private void initialize() {
}

setControllerState(ControllerState.CONNECTING);
if (initializer.isInitialized()) {
return;
}

ThreadHelper.invokeLater(() -> {
positionPollTimer.stop();
if (!initializer.initialize()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ This file is part of Universal Gcode Sender (UGS).
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mock;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.mock;
Expand All @@ -64,6 +65,7 @@ This file is part of Universal Gcode Sender (UGS).
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import org.mockito.MockitoAnnotations;

import java.io.File;
import java.io.IOException;
Expand All @@ -88,6 +90,9 @@ public class GrblControllerTest {
private static File tempDir;
private final Settings settings = new Settings();

@Mock
private GrblControllerInitializer initializer;

public GrblControllerTest() {
}

Expand All @@ -103,6 +108,7 @@ static public void teardown() throws IOException {

@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
this.mgc = new MockGrblCommunicator();
Localization.initialize("en_US");
}
Expand Down Expand Up @@ -216,36 +222,45 @@ public void testPerformHomingCycleShouldChangeControllerState() throws Exception
@Test
public void issueSoftResetShouldNotSendIfNotConnected() throws Exception {
GrblController instance = new GrblController(mgc);
reset(initializer);

instance.issueSoftReset();

// Noop if called while comm is closed.
// Did not send reset command to communicator or issue reset.
assertEquals(0, mgc.sentBytes.size());
assertEquals(0, mgc.numCancelSendCalls);
verify(initializer, times(0)).reset();
}

@Test
public void issueSoftResetOnGrbl0_8c() throws Exception {
GrblController instance = initializeAndConnectController(VERSION_GRBL_0_8C);
assertEquals(0, mgc.sentBytes.size());
assertEquals(0, mgc.numCancelSendCalls);
reset(initializer);

// Sent reset command to communicator and issued reset.
instance.issueSoftReset();
assertEquals(1, mgc.numCancelSendCalls);
assertEquals(1, mgc.sentBytes.size());
assertEquals(Byte.valueOf(GRBL_RESET_COMMAND), mgc.sentBytes.get(mgc.sentBytes.size() - 1));
verify(initializer, times(0)).reset();
verify(initializer, times(0)).initialize();
}

@Test
public void issueSoftResetOnOlderGrblVersionsShouldSendResetCommand() throws Exception {
GrblController instance = initializeAndConnectController(VERSION_GRBL_0_7);
assertEquals(0, mgc.sentBytes.size());
assertEquals(0, mgc.numCancelSendCalls);
reset(initializer);

instance.issueSoftReset();

assertEquals(1, mgc.sentBytes.size());
assertEquals(1, mgc.numCancelSendCalls);
verify(initializer, times(0)).reset();
}

/**
Expand Down Expand Up @@ -1200,7 +1215,6 @@ public void rawResponseHandlerOnVersionStringWhenNotSendingFileShouldNotCancelSt
assertEquals(0, mgc.numCancelSendCalls);
assertEquals(0, mgc.numResetBuffersCalls);
assertEquals(COMM_IDLE, instance.getCommunicatorState());

}

/**
Expand Down Expand Up @@ -1403,7 +1417,6 @@ public void onConnectionClosedShouldDisconnectController() throws Exception {
* @throws Exception on any error while simulating a connection
*/
private GrblController initializeAndConnectController(String grblVersionString) throws Exception {
GrblControllerInitializer initializer = mock(GrblControllerInitializer.class);
when(initializer.isInitialized()).thenReturn(false);
when(initializer.isInitializing()).thenReturn(false);
when(initializer.initialize()).thenReturn(true);
Expand Down

0 comments on commit a211ab9

Please sign in to comment.