Bug #4012

Get segmentation fault when trying to call method from 3rd party's API

Added by Jing Li over 3 years ago. Updated about 1 year ago.

[ruby-core:32999]
Status:Feedback
Priority:Normal
Assignee:Masaki Suketa
Category:-
Target version:next minor
ruby -v:ruby 1.9.2p0 (2010-08-18) [i386-mingw32] Backport:

Description

=begin
I tried to call a method in an interface from 3rd party's API. The interface has been successfully found by olequeryinterface, while at next step of calling the method inside, I got a segmentation fault. And I think the parameters I passed into the method are correct.

This implementation is using HP Quality Center Open Test Architecture API.
Interface: ISupportCopyPaste
Public Method: CopyToClipBoard
Syntax (Visual Basic):
Public Function CopyToClipBoard( _
ByVal IDSFilter As String, _
Optional ByVal mode As Long = 0, _
Optional ByVal Path As String = "" _
) As String
Parameters:
IDSFilter
Either comma separated list of ID numbers or a TDFilter.Text that qualifies the items to be copied.
mode
Unused
Path
Use when copying a folder. The path of the folder.
Return Type:
The data copied to the clipboard.

Codes Snippet:
iscp = tstsf.olequeryinterface(iidISupportCopyPaste)
clipboard = iscp.CopyToClipBoard(copied
id)
# or replace above one with below
# clipboard = iscp.CopyToClipBoard(copied_id, 0, "")

Error info:
-- control frame ----------
c:0004 p:---- s:0025 b:0025 l:000024 d:000024 CFUNC :method_missing
c:0003 p:0612 s:0023 b:0023 l:00118c d:001980 EVAL qc.rb:76
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:00118c d:00118c TOP


-- Ruby level backtrace information ----------------------------------------
qc.rb:76:in <main>'
qc.rb:76:in
method_missing'
=end

qc.rb Magnifier - code (3.13 KB) Jing Li, 11/02/2010 12:48 AM

History

#1 Updated by Luis Lavena over 3 years ago

=begin
Hello,

Since I don't have HP installed tools (or will be without knowing exactly from where and which one to get)

Can you inspect that copied_id is what the type of object expected?

Also, as the example you provided, can remove the 0, "" optionals just for testing?

Thank you.
=end

#2 Updated by Jing Li over 3 years ago

=begin
Hi Luis,

Sorry for lack of information. The 'copiedid' is a Fixnum and here is 25511 for each running. Actually I've tried both the fixnum itself and tos as the parameter, while the result is the same. And according to HP's spec, this should be alright.

As in my comments, remove the optional parameters 0, "" has the same error as with these parameters.

Thanks a lot.
=end

#3 Updated by Jing Li over 3 years ago

=begin
In the spec of parameter, it's said:
IDSFilter: Either comma separated list of ID numbers or a TDFilter.Text that qualifies the items to be copied.

So I also tried a bit TDFilter.Text type, it doesn't work either.

copiedid = tdcon.TestSetTreeManager.NodeByPath("#{path1}\wk30\Component").FindTestSets("BAT20100808").Item(1).TSTestFactory.Filter.Text

Here the copied_id is String and its value is "[Filter]".
=end

#4 Updated by Yui NARUSE almost 3 years ago

  • Status changed from Open to Assigned
  • Assignee set to Masaki Suketa
  • Target version set to 1.9.3

#5 Updated by Masaki Suketa almost 3 years ago

Sorry for being too late to reply.
I would like to know the value of iid_ISupportCopyPaste.
Could you tell me the value?

p iidISupportCopyPaste # I would to know the result of this line.
iscp = tstsf.ole
queryinterface(iidISupportCopyPaste)
...

#6 Updated by Motohiro KOSAKI almost 3 years ago

  • Status changed from Assigned to Feedback
  • Target version changed from 1.9.3 to 1.9.4

#7 Updated by Yui NARUSE about 1 year ago

  • Target version changed from 1.9.4 to next minor

Also available in: Atom PDF