| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | /****************************************************************************
 | 
					
						
							| 
									
										
										
										
											2011-02-18 14:48:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2015-01-14 18:07:15 +01:00
										 |  |  | ** Copyright (C) 2015 The Qt Company Ltd. | 
					
						
							|  |  |  | ** Contact: http://www.qt.io/licensing
 | 
					
						
							| 
									
										
										
										
											2011-02-18 14:48:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** This file is part of Qt Creator. | 
					
						
							| 
									
										
										
										
											2011-02-18 14:48:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** Commercial License Usage | 
					
						
							|  |  |  | ** Licensees holding valid commercial Qt licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the commercial license agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							| 
									
										
										
										
											2015-01-14 18:07:15 +01:00
										 |  |  | ** a written agreement between you and The Qt Company.  For licensing terms and | 
					
						
							|  |  |  | ** conditions see http://www.qt.io/terms-conditions.  For further information
 | 
					
						
							| 
									
										
										
										
											2014-10-01 13:21:18 +02:00
										 |  |  | ** use the contact form at http://www.qt.io/contact-us.
 | 
					
						
							| 
									
										
										
										
											2011-02-18 14:48:16 +01:00
										 |  |  | ** | 
					
						
							|  |  |  | ** GNU Lesser General Public License Usage | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** Alternatively, this file may be used under the terms of the GNU Lesser | 
					
						
							| 
									
										
										
										
											2014-10-01 13:21:18 +02:00
										 |  |  | ** General Public License version 2.1 or version 3 as published by the Free | 
					
						
							|  |  |  | ** Software Foundation and appearing in the file LICENSE.LGPLv21 and | 
					
						
							|  |  |  | ** LICENSE.LGPLv3 included in the packaging of this file.  Please review the | 
					
						
							|  |  |  | ** following information to ensure the GNU Lesser General Public License | 
					
						
							|  |  |  | ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
 | 
					
						
							|  |  |  | ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2015-01-14 18:07:15 +01:00
										 |  |  | ** In addition, as a special exception, The Qt Company gives you certain additional | 
					
						
							|  |  |  | ** rights.  These rights are described in The Qt Company LGPL Exception | 
					
						
							| 
									
										
										
										
											2011-02-18 14:48:16 +01:00
										 |  |  | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ****************************************************************************/ | 
					
						
							| 
									
										
										
										
											2011-02-18 14:48:16 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-27 11:00:23 +01:00
										 |  |  | #ifndef REMOTEPROCESSTEST_H
 | 
					
						
							|  |  |  | #define REMOTEPROCESSTEST_H
 | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-18 10:49:35 +02:00
										 |  |  | #include <ssh/sshremoteprocessrunner.h>
 | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-15 10:42:41 +01:00
										 |  |  | #include <QObject>
 | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-15 17:13:02 +01:00
										 |  |  | QT_FORWARD_DECLARE_CLASS(QTextStream) | 
					
						
							|  |  |  | QT_FORWARD_DECLARE_CLASS(QTimer) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  | class RemoteProcessTest : public QObject | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Q_OBJECT | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2012-05-18 10:49:35 +02:00
										 |  |  |     RemoteProcessTest(const QSsh::SshConnectionParameters ¶ms); | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  |     ~RemoteProcessTest(); | 
					
						
							|  |  |  |     void run(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private slots: | 
					
						
							|  |  |  |     void handleConnectionError(); | 
					
						
							|  |  |  |     void handleProcessStarted(); | 
					
						
							| 
									
										
										
										
											2012-06-08 09:42:32 +02:00
										 |  |  |     void handleProcessStdout(); | 
					
						
							|  |  |  |     void handleProcessStderr(); | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  |     void handleProcessClosed(int exitStatus); | 
					
						
							|  |  |  |     void handleTimeout(); | 
					
						
							| 
									
										
										
										
											2011-11-15 17:13:02 +01:00
										 |  |  |     void handleReadyRead(); | 
					
						
							| 
									
										
										
										
											2011-11-29 10:18:10 +01:00
										 |  |  |     void handleReadyReadStdout(); | 
					
						
							|  |  |  |     void handleReadyReadStderr(); | 
					
						
							| 
									
										
										
										
											2011-11-15 17:13:02 +01:00
										 |  |  |     void handleConnected(); | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2011-11-15 17:13:02 +01:00
										 |  |  |     enum State { | 
					
						
							| 
									
										
										
										
											2011-11-29 10:18:10 +01:00
										 |  |  |         Inactive, TestingSuccess, TestingFailure, TestingCrash, TestingTerminal, TestingIoDevice, | 
					
						
							|  |  |  |         TestingProcessChannels | 
					
						
							| 
									
										
										
										
											2011-11-15 17:13:02 +01:00
										 |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QString testString() const; | 
					
						
							| 
									
										
										
										
											2012-03-31 11:31:46 +02:00
										 |  |  |     void handleSuccessfulCrashTest(); | 
					
						
							|  |  |  |     void handleSuccessfulIoTest(); | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-18 10:49:35 +02:00
										 |  |  |     const QSsh::SshConnectionParameters m_sshParams; | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  |     QTimer * const m_timeoutTimer; | 
					
						
							| 
									
										
										
										
											2011-11-15 17:13:02 +01:00
										 |  |  |     QTextStream *m_textStream; | 
					
						
							| 
									
										
										
										
											2012-05-18 10:49:35 +02:00
										 |  |  |     QSsh::SshRemoteProcess::Ptr m_catProcess; | 
					
						
							|  |  |  |     QSsh::SshRemoteProcess::Ptr m_echoProcess; | 
					
						
							| 
									
										
										
										
											2012-05-29 13:22:33 +02:00
										 |  |  |     QSsh::SshConnection *m_sshConnection; | 
					
						
							| 
									
										
										
										
											2012-06-19 13:03:48 +02:00
										 |  |  |     QSsh::SshRemoteProcessRunner * const m_remoteRunner; | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  |     QByteArray m_remoteStdout; | 
					
						
							|  |  |  |     QByteArray m_remoteStderr; | 
					
						
							| 
									
										
										
										
											2011-11-29 10:18:10 +01:00
										 |  |  |     QByteArray m_remoteData; | 
					
						
							| 
									
										
										
										
											2010-10-28 15:03:03 +02:00
										 |  |  |     State m_state; | 
					
						
							|  |  |  |     bool m_started; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-27 11:00:23 +01:00
										 |  |  | #endif // REMOTEPROCESSTEST_H
 |