প্রকল্প সম্পর্কে

Driver Validation Suite হলো ADBC (Arrow Database Connectivity) ড্রাইভার যাচাই করার জন্য একটি পুনঃব্যবহারযোগ্য, প্লাগযোগ্য টেস্ট ফ্রেমওয়ার্ক, যা Python এবং pytest টেস্টিং লাইব্রেরি দিয়ে তৈরি। এটি বিভিন্ন ADBC ফিচার ও ডেটা টাইপ পরীক্ষা করে লক্ষ্য ড্রাইভারগুলির বিরুদ্ধে SQL কোয়েরি চালানোর মাধ্যমে, এবং সমর্থিত ও অসমর্থিত ফিচারের তালিকাভুক্ত ডকুমেন্টেশন টেবিল তৈরি করে। স্যুটটি ডেটাবেস-নির্দিষ্ট সিনট্যাক্স ও আচরণগত কুইর্কের সাথে খাপ খাইয়ে নিতে পারে। টেস্ট কেসগুলো queries/base ডিরেক্টরির অধীনে সংগঠিত, যেখানে প্রতিটি টেস্ট একটি নির্দিষ্ট ডিরেক্টরির সেই সব ফাইল নিয়ে গঠিত যাদের বেস ফাইলনেম একই। স্যুটটি তিনটি মূল কোয়েরি টাইপ সমর্থন করে: ১. SELECT কোয়েরি: একটি কোয়েরি চালিয়ে তার ফলাফল যাচাই করার টেস্ট। এতে থাকে query.sql ফাইল, প্রত্যাশিত রেজাল্ট স্কিমা (query.schema.json), JSON Lines ফরম্যাটে প্রত্যাশিত ফলাফল ডেটা (query.json), এবং ঐচ্ছিক সেটআপ SQL, বাইন্ড প্যারামিটার ডেটা, বাইন্ড স্কিমা এবং বাইন্ড কোয়েরি ফাইল। ২. স্কিমা কোয়েরি: একটি কোয়েরি কার্যকর না করে তার রেজাল্ট সেট স্কিমা পুনরুদ্ধার করার টেস্ট; শুধু query.sql এবং প্রত্যাশিত স্কিমা ফাইল প্রয়োজন। ৩. ইনজেস্ট কোয়েরি: Arrow ডেটার বাল্ক ইনজেশন এবং পরে লোড হওয়া টেবিলে কোয়েরি চালানোর টেস্ট; এতে ইনপুট স্কিমা ও ডেটা ফাইল প্রয়োজন, এবং ঐচ্ছিক প্রত্যাশিত রেজাল্ট স্কিমা ও ডেটা থাকতে পারে। সমস্ত টেস্ট কেসে ঐচ্ছিক query.toml মেটাডেটা ফাইল থাকতে পারে, যা টেস্ট আচরণ ও ডকুমেন্টেশন আউটপুট নিয়ন্ত্রণ করে: hide ফ্ল্যাগ কোনো ড্রাইভারের জন্য টেস্টটি সম্পূর্ণভাবে না চালিয়ে বাদ দেয়, skip ফ্ল্যাগ টেস্টটিকে একটি প্রদত্ত কারণসহ অসমর্থিত হিসেবে চিহ্নিত করে, sort-keys ফলাফল সেট তুলনার আগে কোন কলাম দিয়ে সাজাতে হবে তা নির্ধারণ করে, এবং tags সতর্কতা যোগ করতে, আংশিক সাপোর্ট চিহ্নিত করতে, বা ডকুমেন্টেশনের জন্য SQL টাইপ নাম নির্দিষ্ট করতে পারে। ড্রাইভারগুলো তাদের নির্ধারিত quirks ডিরেক্টরিতে একই আপেক্ষিক পাথে ফাইল রেখে বেস টেস্ট কেসগুলিকে ড্রাইভার-নির্দিষ্ট সমন্বয় দিয়ে ওভাররাইড করতে পারে, ফলে পুরো টেস্ট কেস নকল করার প্রয়োজন হয় না। আলাদা ফাইলভিত্তিক টেস্ট সংজ্ঞার বিকল্প হিসেবে একটি একক .txtcase ফাইল ব্যবহার করা যায়, যেখানে // part: মন্তব্য চিহ্নিত করে কোন অংশটি কোন মূল ফাইল টাইপের সাথে মিলে যায়। একই টেস্ট কেসের জন্য .txtcase ফাইল আলাদা ফাইলের সাথে মেশানো যাবে না, কারণ এতে টেস্ট ডিসকভারি ত্রুটি ঘটবে। প্রকল্পটি উল্লেখ করেছে যে আনুষ্ঠানিক ডকুমেন্টেশন এখনও চলমান, এবং ভ্যালিডেশন স্যুট কীভাবে সংহত করতে হয় তা শিখতে ব্যবহারকারীদের বিদ্যমান ADBC ড্রাইভার ইমপ্লিমেন্টেশন দেখার পরামর্শ দেয়।