Re: [KVM-AUTOTEST PATCH 4/5] kvm_config: add helper to raise exception informing line number

2011-01-11 Thread Eduardo Habkost
On Tue, Jan 11, 2011 at 01:48:22AM -0200, Lucas Meneghel Rodrigues wrote:
 On Thu, 2011-01-06 at 14:12 -0200, Eduardo Habkost wrote:
  +for num,line in enumerate(str.splitlines(), 1):
 
 ^ enumerate in py 2.4 takes exactly 1 argument, so it's not possible to
 provide the enumerate start index like this, 
 
 http://docs.python.org/library/functions.html#enumerate

Oops! Right.


 
 so we have to do something like:
 
 +sequence = str.splitlines()[1:]
 +for num,line in enumerate(sequence):
 
 To make it py2.4 compliant.

No, that's not what the 'start' parameter does. You don't want to skip the
first line from the input.

However, we can simply do the following:

diff --git a/client/tests/kvm/kvm_config.py b/client/tests/kvm/kvm_config.py
index c206743..5acf247 100755
--- a/client/tests/kvm/kvm_config.py
+++ b/client/tests/kvm/kvm_config.py
@@ -549,7 +549,7 @@ class configreader:
 self.line_index = 0
 self.lines = []
 self.real_number = []
-for num,line in enumerate(str.splitlines(), 1):
+for num,line in enumerate(str.splitlines()):
 line = line.rstrip().expandtabs()
 stripped_line = line.strip()
 indent = len(line) - len(stripped_line)
@@ -558,7 +558,7 @@ class configreader:
 or stripped_line.startswith(//)):
 continue
 self.lines.append((line, stripped_line, indent))
-self.real_number.append(num)
+self.real_number.append(num+1)
 
 
 def get_next_line(self):

Updated patch below.


From 09a1c35fa79127767de3c54dd02890658498e204 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost ehabk...@raisama.net
Date: Wed, 5 Jan 2011 17:34:48 -0200
Subject: [PATCH] kvm_config: add helper to raise exception informing line number

Useful for syntax or other errors on the config file. We want to tell
the user on which file:line the error is located.

Signed-off-by: Eduardo Habkost ehabk...@raisama.net
---
 client/tests/kvm/kvm_config.py |   16 +++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/client/tests/kvm/kvm_config.py b/client/tests/kvm/kvm_config.py
index 35e2ab9..5acf247 100755
--- a/client/tests/kvm/kvm_config.py
+++ b/client/tests/kvm/kvm_config.py
@@ -548,7 +548,8 @@ class configreader:
 self.filename = filename
 self.line_index = 0
 self.lines = []
-for line in str.splitlines():
+self.real_number = []
+for num,line in enumerate(str.splitlines()):
 line = line.rstrip().expandtabs()
 stripped_line = line.strip()
 indent = len(line) - len(stripped_line)
@@ -557,6 +558,7 @@ class configreader:
 or stripped_line.startswith(//)):
 continue
 self.lines.append((line, stripped_line, indent))
+self.real_number.append(num+1)
 
 
 def get_next_line(self):
@@ -589,6 +591,18 @@ class configreader:
 
 self.line_index = index
 
+def raise_error(self, msg):
+Raise an error related to the last line returned by get_next_line()
+
+if self.line_index == 0: # nothing was read. shouldn't happen, but...
+line_id = 'BEGIN'
+elif self.line_index = len(self.lines): # past EOF
+line_id = 'EOF'
+else:
+# line_index is the _next_ line. get the previous one
+line_id = str(self.real_number[self.line_index-1])
+raise error.AutotestError(%s:%s: %s % (self.filename, line_id, msg))
+
 
 # Array structure:
 # 
-- 
1.7.3.2

-- 
Eduardo
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [KVM-AUTOTEST PATCH 4/5] kvm_config: add helper to raise exception informing line number

2011-01-10 Thread Lucas Meneghel Rodrigues
On Thu, 2011-01-06 at 14:12 -0200, Eduardo Habkost wrote:
 From: Eduardo Habkost ehabk...@raisama.net
 
 Useful for syntax or other errors on the config file. We want to tell
 the user on which file:line the error is located.
 
 Signed-off-by: Eduardo Habkost ehabk...@raisama.net
 ---
  client/tests/kvm/kvm_config.py |   16 +++-
  1 files changed, 15 insertions(+), 1 deletions(-)
 
 diff --git a/client/tests/kvm/kvm_config.py b/client/tests/kvm/kvm_config.py
 index 35e2ab9..c206743 100755
 --- a/client/tests/kvm/kvm_config.py
 +++ b/client/tests/kvm/kvm_config.py
 @@ -548,7 +548,8 @@ class configreader:
  self.filename = filename
  self.line_index = 0
  self.lines = []
 -for line in str.splitlines():
 +self.real_number = []
 +for num,line in enumerate(str.splitlines(), 1):

^ enumerate in py 2.4 takes exactly 1 argument, so it's not possible to
provide the enumerate start index like this, 

http://docs.python.org/library/functions.html#enumerate

so we have to do something like:

+sequence = str.splitlines()[1:]
+for num,line in enumerate(sequence):

To make it py2.4 compliant.

I have read your patchset, looks good to me. Before applying it, I am
going to give Michael time so he can read the patches as well.

  line = line.rstrip().expandtabs()
  stripped_line = line.strip()
  indent = len(line) - len(stripped_line)
 @@ -557,6 +558,7 @@ class configreader:
  or stripped_line.startswith(//)):
  continue
  self.lines.append((line, stripped_line, indent))
 +self.real_number.append(num)
  
 
  def get_next_line(self):
 @@ -589,6 +591,18 @@ class configreader:
  
  self.line_index = index
  
 +def raise_error(self, msg):
 +Raise an error related to the last line returned by 
 get_next_line()
 +
 +if self.line_index == 0: # nothing was read. shouldn't happen, but...
 +line_id = 'BEGIN'
 +elif self.line_index = len(self.lines): # past EOF
 +line_id = 'EOF'
 +else:
 +# line_index is the _next_ line. get the previous one
 +line_id = str(self.real_number[self.line_index-1])
 +raise error.AutotestError(%s:%s: %s % (self.filename, line_id, 
 msg))
 +
  
  # Array structure:
  # 


--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[KVM-AUTOTEST PATCH 4/5] kvm_config: add helper to raise exception informing line number

2011-01-06 Thread Eduardo Habkost
From: Eduardo Habkost ehabk...@raisama.net

Useful for syntax or other errors on the config file. We want to tell
the user on which file:line the error is located.

Signed-off-by: Eduardo Habkost ehabk...@raisama.net
---
 client/tests/kvm/kvm_config.py |   16 +++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/client/tests/kvm/kvm_config.py b/client/tests/kvm/kvm_config.py
index 35e2ab9..c206743 100755
--- a/client/tests/kvm/kvm_config.py
+++ b/client/tests/kvm/kvm_config.py
@@ -548,7 +548,8 @@ class configreader:
 self.filename = filename
 self.line_index = 0
 self.lines = []
-for line in str.splitlines():
+self.real_number = []
+for num,line in enumerate(str.splitlines(), 1):
 line = line.rstrip().expandtabs()
 stripped_line = line.strip()
 indent = len(line) - len(stripped_line)
@@ -557,6 +558,7 @@ class configreader:
 or stripped_line.startswith(//)):
 continue
 self.lines.append((line, stripped_line, indent))
+self.real_number.append(num)
 
 
 def get_next_line(self):
@@ -589,6 +591,18 @@ class configreader:
 
 self.line_index = index
 
+def raise_error(self, msg):
+Raise an error related to the last line returned by get_next_line()
+
+if self.line_index == 0: # nothing was read. shouldn't happen, but...
+line_id = 'BEGIN'
+elif self.line_index = len(self.lines): # past EOF
+line_id = 'EOF'
+else:
+# line_index is the _next_ line. get the previous one
+line_id = str(self.real_number[self.line_index-1])
+raise error.AutotestError(%s:%s: %s % (self.filename, line_id, msg))
+
 
 # Array structure:
 # 
-- 
1.7.3.2

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html