OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [tools/] [src/] [tools/] [configtool/] [standalone/] [wxwin/] [runtestsdlg.h] - Rev 174

Compare with Previous | Blame | View Log

//####COPYRIGHTBEGIN####
//
// ----------------------------------------------------------------------------
// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
//
// This program is part of the eCos host tools.
//
// This program is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 of the License, or (at your option)
// any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU General Public License along with
// this program; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
// ----------------------------------------------------------------------------
//
//####COPYRIGHTEND####
// runtestsdlg.cpp :
//
//===========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s):   julians
// Contact(s):  julians
// Date:        2000/09/29
// Version:     $Id: runtestsdlg.h,v 1.1.1.1 2004-02-14 13:28:52 phoenix Exp $
// Purpose:
// Description: Header file for ecRunTestsDialog
// Requires:
// Provides:
// See also:
// Known bugs:
// Usage:
//
//####DESCRIPTIONEND####
//
//===========================================================================
 
#ifndef _ECOS_RUNTESTSDLG_H_
#define _ECOS_RUNTESTSDLG_H_
 
#ifdef __GNUG__
    #pragma interface "runtestsdlg.cpp"
#endif
 
#include "wx/notebook.h"
#include "wx/thread.h"
 
#include "eCosTest.h"
#include "Properties.h"
 
/*
 * ecRunTestsTimer
 * Just to force idle processing now and again while
 * the tests are running
 */
 
class ecRunTestsTimer: public wxTimer
{
public:
    ecRunTestsTimer() {}
 
    virtual void Notify() ;
};
 
//----------------------------------------------------------------------------
// ecRunTestsDialog
//----------------------------------------------------------------------------
 
class ecRunTestsExecutablesDialog;
class ecRunTestsOutputDialog;
class ecRunTestsSummaryDialog;
 
enum ecRunStatus { ecRunning, ecStopping, ecStopped };
 
#ifdef __WXGTK__
#define DWORD int
#endif
 
class ecRunTestsDialog: public wxDialog
{
DECLARE_CLASS(ecRunTestsDialog)
    friend class ecResetThread;
    friend class ecRunTestsTimer; 
public:
    ecRunTestsDialog(wxWindow* parent);
    ~ecRunTestsDialog();
 
    void OnOK(wxCommandEvent& event);
    void OnRun(wxCommandEvent& event);
    void OnProperties(wxCommandEvent& event);
    //void OnHelp(wxCommandEvent& event);
    void OnPageChange(wxNotebookEvent& event);
    void OnSize(wxSizeEvent& event);
    void OnIdle(wxIdleEvent& event);
    void OnCloseWindow(wxCloseEvent& event);
 
    virtual bool TransferDataToWindow();
    virtual bool TransferDataFromWindow();
 
    inline wxNotebook* GetNotebook() const { return m_notebook; }
 
    // Add the test to the dialog
    void Populate(const wxString& test, bool select = TRUE);
	void SubmitTests();
 
    // Write to the output buffer for OnIdle to pick up
    void OutputToBuffer(const wxString& str);
    // Write any remaining text
    void FlushBuffer();
 
    // Thread callbacks
    static void RunCallback(void *pParam);
    static void CALLBACK RunLocalFunc(void *pParam);
    static void CALLBACK RunRemoteFunc(void *pParam);
	static void CALLBACK TestOutputCallback(void *pParam,LPCTSTR psz);
 
    // Helpers
    // Translate from Windows to Unix serial port nomenclature
    wxString TranslatePort(const wxString& port) const;
 
protected:
 
    ecRunTestsExecutablesDialog*            m_executables;
    ecRunTestsOutputDialog*                 m_output;
    ecRunTestsSummaryDialog*                m_summary;
    wxNotebook*                             m_notebook;
 
    ecRunStatus                             m_runStatus;
    CeCosTest::ExecutionParameters          m_ep;
	int                                     m_nNextToSubmit;
    CTestResource*                          m_pResource;
    CProperties                             m_prop;
    wxCriticalSection                       m_CS;
    static ecRunTestsDialog*                m_runTestsDialog;
    bool                                    m_testsAreComplete;
 
    // Output text by writing to the buffer and letting
    // OnIdle pick it up
    wxString                                m_outputBuffer;
    bool                                    m_outputBufferPresent;
    ecRunTestsTimer                         m_timer;
DECLARE_EVENT_TABLE()
};
 
/* Executables dialog
 */
 
class ecRunTestsExecutablesDialog: public wxPanel
{
DECLARE_CLASS(ecRunTestsExecutablesDialog)
DECLARE_EVENT_TABLE()
public:
    ecRunTestsExecutablesDialog(wxWindow* parent);
 
    void CreateControls( wxPanel *parent);
    void AddFromFolder(const wxString& folder, bool recurse, const wxString& wildcard);
    int SelectedTestCount();
	wxString SelectedTest(int nIndex);
 
    void OnCheckAll(wxCommandEvent& event);
    void OnUncheckAll(wxCommandEvent& event);
    void OnAdd(wxCommandEvent& event);
    void OnAddFromFolder(wxCommandEvent& event);
    void OnRemove(wxCommandEvent& event);
    void OnUpdateCheckAll(wxUpdateUIEvent& event);
    void OnUpdateUncheckAll(wxUpdateUIEvent& event);
};
 
#define ecID_RUN_TESTS_CHECK_ALL 10072
#define ecID_RUN_TESTS_UNCHECK_ALL 10073
#define ecID_RUN_TESTS_ADD 10074
#define ecID_RUN_TESTS_ADD_FOLDER 10075
#define ecID_RUN_TESTS_REMOVE 10076
#define ecID_RUN_TESTS_TEST_LIST 2063
 
/* Output dialog
 */
 
class ecRunTestsOutputDialog: public wxPanel
{
DECLARE_CLASS(ecRunTestsOutputDialog)
public:
    ecRunTestsOutputDialog(wxWindow* parent);
 
    void CreateControls( wxPanel *parent);
 
    void AddText(const wxString& msg);
    void AddLogMsg(const wxString& msg);
};
 
#define ecID_RUN_TESTS_OUTPUT_TEXT 10088
 
/* Summary dialog
 */
 
class WXDLLEXPORT wxListCtrl;
 
// Windows requires the sort function to be of type
// CALLBACK
#ifndef CALLBACK
#define CALLBACK
#endif
 
class ecRunTestsSummaryDialog: public wxPanel
{
DECLARE_CLASS(ecRunTestsSummaryDialog)
DECLARE_EVENT_TABLE()
public:
    ecRunTestsSummaryDialog(wxWindow* parent);
 
    void CreateControls( wxPanel *parent);
	void AddResult (CeCosTest *pTest);
    void OnColClick(wxListEvent& event);
    static int CALLBACK SummarySortFunc(long data1, long data2, long col);
 
    static wxListCtrl* m_listCtrl;
};
 
#define ecID_RUN_TESTS_SUMMARY_LIST     2063
 
// Information used in thread processing
struct ecRunTestsInfo {
  ecRunTestsDialog* pSheet;
  CeCosTest      *  pTest;
};
 
// Thread class used for resetting a remote target
class ecResetThread : public wxThread
{
public:
    ecResetThread(ecRunTestsInfo* info) { m_info = info; };
 
    // thread execution starts here
    virtual void *Entry();
 
    // called when the thread exits - whether it terminates normally or is
    // stopped with Delete() (but not when it is Kill()ed!)
    virtual void OnExit();
 
public:
    ecRunTestsInfo* m_info;
};
 
 
#endif
    // _ECOS_RUNTESTSDLG_H_
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.