منصوبے کے بارے میں
Driver Validation Suite ایک دوبارہ استعمال کے قابل، پلگ ایبل ٹیسٹ فریم ورک ہے جو ADBC (Arrow Database Connectivity) ڈرائیورز کی تصدیق کے لیے بنایا گیا ہے، جسے Python اور pytest ٹیسٹنگ لائبریری کے ساتھ تیار کیا گیا ہے۔ یہ ٹارگٹ ڈرائیورز کے خلاف SQL کوئریز چلا کر مختلف ADBC فیچرز اور ڈیٹا ٹائپس کا تجربہ کرتا ہے، اور ایسی دستاویزاتی ٹیبلز تیار کرتا ہے جو سپورٹ شدہ اور غیر سپورٹ شدہ فیچرز کی فہرست دیتی ہیں۔ یہ سویٹ ڈیٹا بیس کے مخصوص سنٹیکس اور رویوں کے فرق کو بھی سنبھال سکتا ہے۔
ٹیسٹ کیسز کو queries/base ڈائریکٹری کے تحت ترتیب دیا گیا ہے، جہاں ہر انفرادی ٹیسٹ ایک ہی ڈائریکٹری میں موجود تمام فائلوں پر مشتمل ہوتا ہے جن کا بنیادی فائل نام ایک جیسا ہو۔ سویٹ تین بنیادی کوئری اقسام کو سپورٹ کرتا ہے:
1. SELECT کوئریز: ایک کوئری چلانے اور اس کے نتیجے کی تصدیق کرنے کا ٹیسٹ، جو کہ ایک query.sql فائل، متوقع نتیجہ کا اسکیما (query.schema.json)، JSON Lines میں متوقع نتیجہ کا ڈیٹا (query.json)، اور اختیاری سیٹ اپ SQL، بائنڈ پیرامیٹر ڈیٹا، بائنڈ اسکیما، اور بائنڈ کوئری فائلوں پر مشتمل ہوتا ہے۔
2. Schema کوئریز: کوئری کو چلائے بغیر اس کے رزلٹ سیٹ اسکیما کو حاصل کرنے کا ٹیسٹ، جس کے لیے صرف query.sql اور متوقع اسکیما فائل کی ضرورت ہوتی ہے۔
3. Ingest کوئریز: Arrow ڈیٹا کی بلک انجیشن (bulk ingestion) اور اس کے بعد لوڈ شدہ ٹیبل پر کوئری کرنے کا ٹیسٹ، جس کے لیے ان پٹ اسکیما اور ڈیٹا فائلوں کی ضرورت ہوتی ہے، جبکہ متوقع نتیجہ کا اسکیما اور ڈیٹا اختیاری ہے۔
تمام ٹیسٹ کیسز میں ٹیسٹ کے رویے اور دستاویزاتی آؤٹ پٹ کو کنٹرول کرنے کے لیے ایک اختیاری query.toml میٹا ڈیٹا فائل شامل کی جا سکتی ہے: hide فلیگ کسی ڈرائیور کے لیے ٹیسٹ کو مکمل طور پر چھوڑ دیتا ہے، skip فلیگ ٹیسٹ کو فراہم کردہ وجہ کے ساتھ غیر سپورٹ شدہ کے طور پر نشان زد کرتا ہے، sort-keys موازنہ سے پہلے رزلٹ سیٹس کو ترتیب دینے والے کالمز کی وضاحت کرتا ہے، اور tags احتیاطی تدابیر شامل کر سکتے ہیں، جزوی سپورٹ کو نشان زد کر سکتے ہیں، یا دستاویزات کے لیے SQL ٹائپ کا نام متعین کر سکتے ہیں۔
ڈرائیورز اپنے مخصوص quirks ڈائریکٹری میں اسی متعلقہ پاتھ پر فائلیں رکھ کر بیس ٹیسٹ کیسز کو ڈرائیور کے مطابق تبدیل (override) کر سکتے ہیں، جس سے مکمل ٹیسٹ کیسز کو دوبارہ لکھنے کی ضرورت نہیں پڑتی۔ الگ الگ فائلوں کے بجائے، ایک واحد .txtcase فائل بھی استعمال کی جا سکتی ہے، جس میں // part: کمنٹس یہ ظاہر کرتے ہیں کہ کون سا حصہ کس اصل فائل ٹائپ سے متعلق ہے۔ .txtcase فائلوں کو ایک ہی ٹیسٹ کیس کے لیے الگ فائلوں کے ساتھ مکس نہیں کیا جا سکتا، کیونکہ اس سے ٹیسٹ ڈسکوری میں غلطیاں پیدا ہو سکتی ہیں۔
پروجیکٹ میں نوٹ کیا گیا ہے کہ باقاعدہ دستاویزات ابھی زیر التوا ہیں، اور صارفین کو مشورہ دیا جاتا ہے کہ وہ ویلیڈیشن سویٹ کو انٹیگریٹ کرنے کا طریقہ سیکھنے کے لیے موجودہ ADBC ڈرائیور امپلیمنٹیشنز کا حوالہ دیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.