Ticket #62: bus_error_and_segmentation_fault_test_cast.diff

File bus_error_and_segmentation_fault_test_cast.diff, 2.2 KB (added by lmarlow@…, 3 years ago)
  • test/unit/search/tc_multiple_search_requests.rb

     
     1require File.dirname(__FILE__) + "/../../test_helper" 
     2 
     3class MultipleSearchRequestsTest < Test::Unit::TestCase 
     4  include Ferret::Document 
     5  include Ferret::Search 
     6  include Ferret::Store 
     7  include Ferret::Analysis 
     8  include Ferret::Index 
     9 
     10  def setup() 
     11    dpath = File.expand_path(File.join(File.dirname(__FILE__), 
     12                       '../../temp/fsdir')) 
     13    fs_dir = Ferret::Store::FSDirectory.new(dpath, true) 
     14 
     15    iw = IndexWriter.new(fs_dir, :create => true, :key => [:id]) 
     16    1000.times do |x| 
     17      doc = Document.new 
     18      doc << Field.new('id', x, Field::Store::YES, Field::Index::UNTOKENIZED) 
     19      iw << doc 
     20    end 
     21    iw.close() 
     22    fs_dir.close() 
     23 
     24    @ix = Index.new(:path => dpath, :create => true, :key => [:id]) 
     25  end 
     26 
     27  def tear_down() 
     28    @ix.close 
     29  end 
     30 
     31  def test_repeated_queries_segmentation_fault 
     32    100000.times do |x| 
     33      bq = BooleanQuery.new() 
     34      tq1 = Ferret::Search::TermQuery.new(Ferret::Index::Term.new("id", 1)) 
     35      tq2 = Ferret::Search::TermQuery.new(Ferret::Index::Term.new("another_id", 1)) 
     36      bq.add_query(tq1, BooleanClause::Occur::MUST) 
     37      bq.add_query(tq2, BooleanClause::Occur::MUST) 
     38      top_docs = @ix.search(bq) 
     39    end 
     40  end 
     41 
     42  def test_repeated_queries_bus_error 
     43    100000.times do |x| 
     44      bq = BooleanQuery.new() 
     45      tq1 = TermQuery.new(Term.new("id", 1)) 
     46      tq2 = TermQuery.new(Term.new("another_id", 1)) 
     47      tq3 = TermQuery.new(Term.new("yet_another_id", 1)) 
     48      tq4 = TermQuery.new(Term.new("still_another_id", 1)) 
     49      tq5 = TermQuery.new(Term.new("one_more_id", 1)) 
     50      tq6 = TermQuery.new(Term.new("and_another_id", 1)) 
     51      bq.add_query(tq1, BooleanClause::Occur::MUST) 
     52      bq.add_query(tq2, BooleanClause::Occur::MUST) 
     53      bq.add_query(tq3, BooleanClause::Occur::MUST) 
     54      bq.add_query(tq4, BooleanClause::Occur::MUST) 
     55      bq.add_query(tq5, BooleanClause::Occur::MUST) 
     56      bq.add_query(tq6, BooleanClause::Occur::MUST) 
     57      top_docs = @ix.search(bq) 
     58    end 
     59  end 
     60end