fixed debug messages for sinks #3

Closed
wants to merge 1 commit into
from

Conversation

Projects
None yet
2 participants

No description provided.

Owner

tpo commented Jun 17, 2013

Das kam schon Mal, macht für mich aber keinen Sinn:

    class MeshNode(object):
       def __init__(self, port, is_sink=False, is_source=False):
            ...
            elif self.is_sink:
    -                self.proc = subprocess.Popen( command, env=env, stdout=subprocess.PIPE )
    +               self.proc = subprocess.Popen( command, env=env, stdin=subprocess.PIPE ) 

Wenn ich einen Knoten erstelle, welcher das Ziel ist, dann möchte ich seinen Output lesen können. Deshalb stdout.

?
*t

Hab noch ein bisschen darüber nachgedacht - Du hast Recht, der Change macht so nicht Sinn, weil das Testprogramm so ja den Output des Sinknodes garnicht lesen könnte. Das Problem ist allerdings, dass mit 'stdout=subprocess.PIPE' der GESAMTE Subprozess-Standardout gepiped wird. D.h, dass man trotz Verbose-Mode keine Meldungen vom entsprechenden Sinknode bekommt (man weiss also garnicht, ob der Sink-Node lebt, und was er so tut). Kann man irgendwie machen, dass das Testprogramm am Schluss die Meldung überprüfen kann, aber dass die Nodes trotzdem zwischendurch noch Meldungen ausgeben können (z.B. "SinkNode wurde erstellt")? /cc @frog32

Owner

tpo commented Jun 17, 2013

On Mon, 17 Jun 2013, elHornair wrote:

Hab noch ein bisschen darüber nachgedacht - Du hast Recht, der Change macht so nicht Sinn, weil das
Testprogramm so ja den Output des Sinknodes garnicht lesen könnte. Das Problem ist allerdings, dass
mit 'stdout=subprocess.PIPE' der GESAMTE Subprozess-Standardout gepiped wird. D.h, dass man trotz
Verbose-Mode keine Meldungen vom entsprechenden Sinknode bekommt (man weiss also garnicht, ob der
Sink-Node lebt, und was er so tut). Kann man irgendwie machen, dass das Testprogramm am Schluss die
Meldung überprüfen kann, aber dass die Nodes trotzdem zwischendurch noch Meldungen ausgeben können
(z.B. "SinkNode wurde erstellt")? /cc @frog32

Du kannst die Meldungen ggF. auf STDERR ausgeben (weiss nicht aus dem FF,
ob die Test Scripte STDERR umleiten?).

?
*t

Würde gehn, mit stderr macht das Testscript nichts. Aber auf stderr will ich ja Fehler ausgeben, nicht Kommentare

Owner

tpo commented Jun 17, 2013

On Mon, 17 Jun 2013, elHornair wrote:

Würde gehn, mit stderr macht das Testscript nichts. Aber auf stderr will ich ja Fehler ausgeben,
nicht Kommentare

Nun ja, Du kannst Dich z.B. an sshd orientieren:

     $ man sshd

      -d      Debug mode.  The server sends verbose debug output to
              standard error, ... This option is only intended for
              debugging for the server.  Multiple -d options increase
              the debugging level.  Maximum is 3.

Du kannst den Debug Level natürlich auch per Environment Variable setzen:

     $ DEBUG_LEVEL=muy_fuerte ./meshnode

*t

Ah interessant, wusste nicht, dass man das so macht - Danke!

elHornair closed this Jun 17, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment